This throws an error in Perl v5.20:
use strict;
use warnings;
my @a = (2,3,9);
my %b = map { "number $_" => 2*$_ } @a;
Error:
syntax error at a.pl line 4, near "} @a"
Execution of a.pl aborted due to compilation errors.
This doesn't:
use strict;
use warnings;
my @a = (2,3,9);
my %b = map { "number ".$_ => 2*$_ } @a;
Why is interpolation of $_ disallowed within the map BLOCK?