省メモリeach

今までハッシュのキーでループ回すときとか,省メモリにしたい場合は,いちいち

keys %hash;
while(my $key = shift @keys){
  # hogehoge
}

ということをやってきた.どうも汚いなぁ,と思っていたが,どうやらeachを使えばいいらしい.上記のプログラムと等価

while(my ($key, $value) = each %hash){
  # hogehoge
}

いずれにせよ,巨大なハッシュでループを使う場合は気をつけよう.