Perlで二つの配列からハッシュをスマート作る方法
読了まで:約0分
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。