まくまくPerlノート
ハッシュの要素をループで処理する
2008-03-04

while ループと each 関数を組み合わせると、次のようにハッシュのキーと値を順番に取り出すことができます。

my %hash = (A => 100, B => 200, C => 300);
while (my ($key, $val) = each %hash) {
    print "$key => $val\n";
}

each 関数は、キーと値のペアを最後まで返し終わると空リストを返すようになります。 リスト代入の評価後の値は、代入された数になるので、最終的に 0 となって while ループが終了します。

2008-03-04