Perl redo文
Perlのredo文は、ループ本体の最初の行に直接ジャンプして今回のループを繰り返し実行します。redo文以降の文は実行されず、continue文ブロックも実行されません。
continue文はwhileループとforeachループで使用できます。
構文
構文形式は次のとおりです:
redo [LABEL]
ここで LABEL は省略可能です。
ラベル修飾子LABELを伴うredo文は、ループ制御フローをラベル修飾子LABELに関連付けられた文ブロックの最初の行に直接移動して実行を開始します。redo文以降の文とcontinue文ブロックは実行されません;
ラベル修飾子LABELを伴わないredo文は、ループ制御フローを現在の文ブロックの最初の行に直接移動して実行を開始します。redo文以降の文とcontinue文ブロックは実行されません;
forループ内にある場合、またはcontinue文ブロックを伴う場合、forループ内の増分リストとcontinue文ブロックはどちらも実行されません;
フローチャート

例
#/usr/bin/perl
$a = 0;
while($a < 10){
if( $a == 5 ){
$a = $a + 1;
redo;
}
print "a = $a\n";
}continue{
$a = $a + 1;
}
上記のプログラムを実行すると、出力結果は次のようになります:
a = 0 a = 1 a = 2 a = 3 a = 4 a = 6 a = 7 a = 8 a = 9その他の拡張
Perl ループ