Loose-Info.com
Last Update 2008/05/18
TOP - Perl - redo

redoはループ処理のブロック内において、redo出現以降の処理を飛ばしてもう一度同じループ処理を繰り返します。
continueで指定されたブロックがある場合でも処理は実行されません。

(例)
$i = 0; $j = 0; while ($i < 5) { print "$i : $j\n"; # 本来のループ処理とは別のカウンタを用意 $j++; # 無限ループにならないように処理 if ($j > 5) {last;} # ここで再度同じループ処理に戻る redo; print "ここは表示されない\n"; } continue { $i++; print "ここも表示されない\n"; }

実行結果
0 : 0 0 : 1 0 : 2 0 : 3 0 : 4 0 : 5