while
ループと each
関数を組み合わせると、次のようにハッシュのキーと値を順番に取り出すことができます。
my %hash = (A => 100, B => 200, C => 300);
while (my ($key, $val) = each %hash) {
print "$key => $val\n";
}
each
関数は、キーと値のペアを最後まで返し終わると空リストを返すようになります。
リスト代入の評価後の値は、代入された数になるので、最終的に 0 となって while
ループが終了します。