Perl の redo ステートメントは、ループ本体の最初の行に直接移動し、ループの繰り返し実行を開始します。redo ステートメントの後のステートメントは実行されなくなり、 continue ステートメント ブロックも実行されなくなります。
continue ステートメントは while ループと foreach ループで使用できます。
構文形式は次のとおりです。
やり直し [レーベル]
LABEL はオプションです。
ラベル修飾子 LABEL を持つ redo ステートメントは、redo ステートメントと continue ステートメント ブロックの後のステートメントを実行するのではなく、ループ制御フローがラベル修飾子 LABEL に関連付けられたステートメント ブロックの最初の行に直接転送されて実行を開始することを意味します。
ラベル修飾子 LABEL のない redo ステートメントは、redo ステートメントと continue ステートメント ブロックの後のステートメントを実行するのではなく、ループ制御フローが現在のステートメント ブロックの最初の行に直接転送されて実行を開始することを意味します。
for ループ内または continue ステートメント ブロックがある場合、for ループ内のインクリメント リストと continue ステートメント ブロックは実行されなくなります。
上記のプログラムを実行すると、出力結果は次のようになります。
a = 0a = 1a = 2a = 3a = 4a = 6a = 7a = 8a = 9