[perl #93358] Clarify => quoting
authorFather Chrysostomos <sprout@cpan.org>
Fri, 26 Aug 2011 12:54:58 +0000 (05:54 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Fri, 26 Aug 2011 15:24:20 +0000 (08:24 -0700)
The perlop manpage was stating ‘the left operand’, which was
not entirely correct, as ‘time.shift =>’ quotes just the shift,
not the time (nor does it see the whole as not being an ident-
ifier and refuse to quote anything).

pod/perlop.pod

index 9e83c52..c0cbe50 100644 (file)
@@ -872,8 +872,8 @@ In list context, it's just the list argument separator, and inserts
 both its arguments into the list.  These arguments are also evaluated
 from left to right.
 
-The C<< => >> operator is a synonym for the comma except that it causes
-its left operand to be interpreted as a string if it begins with a letter
+The C<< => >> operator is a synonym for the comma except that it causes a
+word on its left to be interpreted as a string if it begins with a letter
 or underscore and is composed only of letters, digits and underscores.
 This includes operands that might otherwise be interpreted as operators,
 constants, single number v-strings or function calls. If in doubt about
@@ -902,6 +902,15 @@ between keys and values in hashes, and other paired elements in lists.
         %hash = ( $key => $value );
         login( $username => $password );
 
+The special quoting behavior ignores precedence, and hence may apply to
+I<part> of the left operand:
+
+    print time.shift => "bbb";
+
+That example prints something like "1314363215shiftbbb", because the
+C<< => >> implicitly quotes the C<shift> immediately on its left, ignoring
+the fact that C<time.shift> is the entire left operand.
+
 =head2 List Operators (Rightward)
 X<operator, list, rightward> X<list operator>