Learn to Live and Live to Learn

IT(たまにビジネス)に関する記事を読んで、考えて、使ってみたことをまとめる場。

mapを使って配列からハッシュを作成

「バタバタしていて…」と心の中でできない社会人の典型な言い訳している内に
ブログの最終更新日から10日も経っていました。反省します。

今日、知ったこと

map関数を使うと配列からハッシュを作れる。

例えば配列の要素をキーにして、バリューには1を入れたいときは

%hash = map{ $_, 1 } @array;

mapで配列の要素を一つずつ取り出して、キー, バリューの形で返します。

一応ハッシュができていることを確認しました。

$ perl -e 'my @array = qw/aaa bbb ccc/; my %hash = map{ $_, 1 } @array; foreach my $key ( keys( %hash ) ) { print $key . " => " . $hash{$key} . "\n"; }'
bbb => 1
aaa => 1
ccc => 1

こういう書き方もできるみたいです。

my %hash = map{ @_ => 1 } @array;

こちらのほうがハッシュっぽいですね(よくわかりませんが)。

参考:http://hirobanex.net/article/2011/04/1302036133