Perl な小ネタ。
Perl で二つの配列からハッシュを作る方法が分かったので、忘れないようにするメモ。
二つの配列、例えば@keys
にハッシュにしたいキー、
@values
にハッシュにしたい値がそれぞれ入った配列があったとする。
この二つからひとつのハッシュを作るとして、最初に思いついたのが、for
ループ使う方法。
my @keys = qw(foo bar baz); my @values = qw(hoge huge moge); my %hash = (); # forループを使う for ( my $i = 0; $i < @keys; $i++ ) { $hash{$keys [[$i]] } = $values [[$i]] ; }
これで一応目的は達成できるものの、スマートじゃない。というか Perl なんだからもっとスマートにできるはず。
で、実際に ハッシュスライス を使えばかなりスマートにできる事に気づいた。
以下が実際のコード。
my @keys = qw(foo bar baz); my @values = qw(hoge huge moge); my %hash = (); # ハッシュスライスを使う @hash{@keys} = @values;
さすがは Perl。そこに痺れる憧れ(ry。