Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: map syntax bug-a-boo?

by dvergin (Monsignor)
on Nov 30, 2001 at 08:41 UTC ( [id://128554]=note: print w/replies, xml ) Need Help??


in reply to map syntax bug-a-boo?

Now, brethren and sistern, let's all charitabley agree to stipulate that the horrid "map in a void context" was merely for the purpose of reducing the problem to its bare essentials.

It would appear that, because of what you have put inside the {...}, Perl is taking that to be an expression and thus needing a comma after it.

use strict; my @l = 1..10; map { 1, 2 }, @l; map { "$_", 2 }, @l;
does not produce errors. And if you say:
print map { 1, 2 }, @l; print map { "$_", 2 }, @l;
you will see a bunch of hash-refs. So Perl is seeing {1,2} as an anonymous hash rather than as a BLOCK that happens to return something. (A very reasonable reading now that we look at it that way.)

------------------------------------------------------------
"Perl is a mess and that's good because the
problem space is also a mess.
" - Larry Wall

Replies are listed 'Best First'.
(MeowChow) Re: map syntax bug-a-boo?
by MeowChow (Vicar) on Nov 30, 2001 at 09:13 UTC
    I was thinking along the same lines, but the fact that the following does work seems to contradict this argument, or at least imply that it's not the whole story:
    map { $_, 2 } @l;
    Though, now that I think about it, all this probably reflects a perl heuristic/optimization in the parser which says something along the lines of "if, within the bracketed expression, I see a constant and then a comma, I'm going to assume the expression is a hash, and not a block, no matter what comes afterwards...."
       MeowChow                                   
                   s aamecha.s a..a\u$&owag.print

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://128554]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (4)
As of 2024-04-16 03:53 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found