ハッシュスライスを使うのが一般的。
@keys = qw(k1 k2 k3); @vals = qw(v1 v2 v3); @hash{@keys} = @vals; print "$key:$val\n" while ($key,$val) = each(%hash);
出力
k2:v2 k1:v1 k3:v3
@hash{'k1','k2','k3'}はリスト、($hash{k1},$hash{k2},$hash{k3})を返します。これらは左辺値でもあるので、
@hash{'k1','k2','k3'} = ('v1','v2','v3');
は以下のリスト代入と等価になります。
($hash{k1},$hash{k2},$hash{k3}) = ('v1','v2','v3');
ハッシュスライス(もちろん配列スライスもあります)は非常に強力な機能です。
知らない人からすると「Perlは暗号、何書いてるかわからん」となってしまうのですが。