No real difference. The + is just there as a hint for Perl that what's in the parens should be
map's expression, not a parenthesized list of arguments much like you might say
print +($x + 1) * 3; to get the meaning of
print(($x + 1) * 3); rather than the default parsing result of
(print($x + 1)) * 3;. I've had success making it work that way for
map, but apparently the rules are not quite so simple as I thought. Functionally, it's supposed to be just the equivalent to what you used. It just bugged me to have to use a BLOCK whenever I'm
mapping an array to a hash.
Makeshifts last the longest.