http://www.perlmonks.org?node_id=642705


in reply to Comma's and blocks

Well, what can I say. The syntax description for map is,
map BLOCK LIST map EXPR,LIST
If you use the block version, {}, then you don't need a comma. You do need a comma if you use the expression version. If you really like the block version, then just take it as a convenience. Further reading of the doc says,
"{" starts both hash references and blocks, so "map { ..." could be either the start of map BLOCK LIST or map EXPR, LIST. Because perl doesn’t look ahead for the closing "}" it has to take a guess at which its dealing with based what it finds just after the "{". Usually it gets it right, but if it doesn’t it won’t realize something is wrong until it gets to the "}" and encounters the missing (or unexpected) comma.

Hope it's clear now why map {/and this/}, @_; won't even compile.


Open source softwares? Share and enjoy. Make profit from them if you can. Yet, share and enjoy!