■ map

BLOCK や EXPR を、(局所的に、$_ を各要素にセットした)LIST の各要素に対して評価 します。そして、各評価の結果からなるリストの値を返します。スカラーコンテキストで は、生成された要素数の合計を返します。 リストコンテキスト内の BLOCK や EXPR を評価し、LIST の各要素は、返値に 0, 1 また はそれ以上の良いうそを生成するでしょう。 @chars = map(chr, @nums); は、数字のリストをそれぞれに一致する文字に変換します。そして、 %hash = map { getkey($_) => $_ } @array; は、まさに以下の通りのコードと同じことするおもしろい方法です。 %hash = (); foreach $_ (@array) { $hash{getkey($_)} = $_; } $_ はリストの値へのリファレンスですから、grep 関数で配列の要素を変更することがで きます。これは便利でサポートされている一方、LIST が名無し配列の場合には、怪奇な 結果を引き起こす可能性があります。foreach ループをこの目的で使うと、ほとんどのケ ースでこれが明らかになります。

文法

map BLOCK LIST

map EXPR,LIST