Re: Strange syntax error with map
Robin Barker [Thu, 15 Nov 2001 13:48:34 +0000 (13:48 +0000)]
Message-Id: <200111151348.NAA01299@tempest.npl.co.uk>
(Applied with tweaks.)

p4raw-id: //depot/perl@13017

pod/perltrap.pod

index 2629379..831d2d5 100644 (file)
@@ -651,6 +651,16 @@ are to used around the name.
     # perl4 prints: {a}
     # perl5 prints: 2
 
+=item * Parsing
+
+When perl sees C<map {> (or C<grep {>), it has to guess whether the C<{>
+starts a BLOCK or a hash reference. If it guesses wrong, it will report
+a syntax error near the C<}> and the missing (or unexpected) comma.
+
+Use unary C<+> before C<{> on a hash reference, and unary C<+> applied
+to the first thing in a BLOCK (after C<{>), for perl to guess right all
+the time. (See L<perlfunc/map>.)
+
 =back
 
 =head2 Numerical Traps