5部 関数リファレンス

redo

redo LABEL



redoコマンドは、条件を再評価しないで、LABELで指定したループのブロックの始めから再実行します。continueブロックがあっても実行されません。LABELが省略されると、最も内側のループが対象になります。

redoの使い方

# redo は条件を再評価せず実行するので、
# $i がマイナスになるまで出力されます
$i = 5;
LOOP1:while($i) {
$i--;
print "LOOP1:", $i, "\n";
print "exit\n", exit if $i < 0;

# この行がないと永遠に続く
redo LOOP1 if $i == 0;
}
> LOOP1:4
> LOOP1:3
> LOOP1:2
> LOOP1:1
> LOOP1:0
> LOOP1:-1 

関連記事