WindowsXP + ActivePerl5.8.6です。

@pattern = ({"aaa" => 0}, {"bbb" => 1}, {"ccc" => 2}, {"ddd" => 3}, {"eee" => 4});

foreach (0..1) {
foreach (@pattern) {
($key, $value) = each(%{$_});
print($key . "\n");
}
}

以上のようなコードを実行すると

aaa
bbb
ccc
ddd
eee
空行
空行
空行
空行
空行

このような出力結果になるのですが、
なんで2回目のループの出力がすべて空行に
なってしまうのでしょうか?