in reply to Magical Arrow Not So Magical?
As it happens, I think I did what Perl thinks you're trying to do just a couple nodes ago. :-) The key is that this is valid:
my @hashrefs = map { foo => $_ }, 1..5;
I suspect that the parser gets to the end of your map block and decides based on its simplicity that it's supposed to be a hashref: therefore, it decides that you're using the map EXPR, LIST syntax instead of the map BLOCK LIST, and expects a comma after the closing brace.
The simplest solution is to add parentheses inside the block, around the list you're trying to return. The next simplest is to actually do what it thinks you're doing, and go to the EXPR form:
map {( "$foo$bar" => "barfoo" )} 1, ; #no more syntax err +or :-) map +( "$foo$bar" => "barfoo" ), 1, ; #note unary + #to avoid "function +-like" #interpretation of +()
|
|---|