読者です 読者をやめる 読者になる 読者になる

Learn to Live and Live to Learn

ITに関する記事を読んで,考えて,使ってみたことをまとめる場.読書が好きでnoteに感想を書いています(宣伝)→https://note.mu/a_01

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

Perl

「バタバタしていて…」と心の中でできない社会人の典型な言い訳している内に
ブログの最終更新日から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