Почему-то map в «блочном исполнении» синтаксически захватывает в качестве входного списка всё разделённое запятыми, то есть:
$ perl -e '@a=(1,2,3); @b=(4,5,6); @c=map { ">$_<" } @a,@b; print join("\n",@c)."\n"'
>1<
>2<
>3<
>4<
>5<
>6<
Особенно лютый батхерт эта особенность доставляет при передаче параметров в функцию.
Например, map внутри join...
join("\n",map { $_*$_ } @a,@b)
В общем, вопрос околонаучного плана (как обойти это скобками - очевидно) - а почему, собственно, так получается?