- next LABEL
 - next EXPR
 - next
 - 
The
nextcommand is like thecontinuestatement in C; it starts the next iteration of the loop:nextコマンドは、C でのcontinue文のようなもので、 ループの次の繰り返しを開始します:LINE: while (<STDIN>) { next LINE if /^#/; # discard comments #... }Note that if there were a continue block on the above, it would get executed even on discarded lines. If LABEL is omitted, the command refers to the innermost enclosing loop. The
next EXPRform, available as of Perl 5.18.0, allows a label name to be computed at run time, being otherwise identical tonext LABEL.continue ブロックが存在すれば、たとえ捨てられる行に あっても、それが実行されます。 LABEL が省略されると、コマンドは一番内側のループを参照します。 Perl 5.18.0 から利用可能な
next EXPR形式では、実行時に計算される ラベル名が使えます; それ以外はnext LABELと同一です。nextcannot return a value from a block that typically returns a value, such aseval {},sub {}, ordo {}. It will perform its flow control behavior, which precludes any return value. It should not be used to exit a grep or map operation.nextはeval {},sub {},do {}といった 典型的には値を返すブロックから値を返せません。 これは、返り値を不可能にするフロー制御の振る舞いを実行します。 grep や map 操作を終了するのに 使うべきではありません。Note that a block by itself is semantically identical to a loop that executes once. Thus
nextwill exit such a block early.ブロック自身は一回だけ実行されるループと文法的に同一であることに 注意してください。 従って、
nextはそのようなブロックから早く抜けるのに使えます。last,
next, redo が どのように働くかについては continue も参照してください。Unlike most named operators, this has the same precedence as assignment. It is also exempt from the looks-like-a-function rule, so
next ("foo")."bar"will cause "bar" to be part of the argument tonext.ほとんどの名前付き演算子と異なり、これは代入と同じ優先順位を持ちます。 また、関数のように見えるものの規則からも免れるので、
next ("foo")."bar"と すると "bar" はnextへの引数の一部となります。