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。

アバターアイコン兼ロゴ

にゃるら(カラクリスタ)

『輝かしい青春』なんて失かった人。次に備えて待機中。

今は趣味でプログラミングをして生活しています。