配列の値をキーにハッシュを生成するワンライナー
my @array = ('foo', 'bar', 'baz');
と、いう配列があって、それをキーに
foo => 1, bar => 1, baz => 1,
と、いうハッシュを生成したいとき
my %hash; for my $key (@array) { $hash{$key} = 1; }
と、書くのが一般的ですが、下記でも書けます。
my %hash = map { $_ => 1 } @array;
スライスの場合、どうしても my 宣言を先にしないといけないので、2 行になってしまうのが嫌で、ついカッとなって書きました。
[追記]
value が同一の場合、速度的には for や slice で書いた方が速いです。value の値が同一じゃないとき向けです。