Perlについての質問箱 14箱目
■ このスレッドは過去ログ倉庫に格納されています
0775デフォルトの名無しさん
NGNG>>773 の人が言い尽くしてるんで蛇足かもしれないが、次のように一行追加すると意図どおりなんでないかな?
@pattern = ({"aaa" => 0}, {"bbb" => 1}, {"ccc" => 2}, {"ddd" => 3}, {"eee" => 4});
foreach (0..1) {
foreach (@pattern) {
values %{$_}; # これで、%{$_} が指すハッシュの each の反復履歴がリセットされる。
($key, $value) = each(%{$_});
print($key . "\n");
}
}
暗黙のうちに働いてくれる反復子は便利なのだが、リセット手段を知らないと思わぬバグを呼びかねない。
あと、ハッシュにキーを追加すると each の反復履歴がリセットされるというのはデマらしい。(今しがた実験した。)
■ このスレッドは過去ログ倉庫に格納されています