Perlにおいて、あるリストのリファレンス(すなわち配列)がありその中身をmapしてまたリファレンスに戻したい。
$ref_array = [1, 2, 3, 4, 5]; @array = @$ref_array; @new_array = map {...} @array; $new_ref_array = \@new_array; # ----- $new_ref_array = \{map {...} @$ref_array}; # does not work -- recognised as hashmap # -----
コードを見ればわかるが、mapを包む部分がハッシュとして認識されてしまい、配列として処理されなくなってしまう。ブレースに+記号を付けることで強制的にハッシュとして認識させる記法が存在するが、その逆に強制的にブロックとして認識させる方法はないのだろうか。