perl-5.20.1
next EXPR
next

The next command is like the continue statement 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 EXPR form, available as of Perl 5.18.0, allows a label name to be computed at run time, being otherwise identical to next LABEL.

continue ブロックが存在すれば、たとえ捨てられる行に あっても、それが実行されます。 LABEL が省略されると、コマンドは一番内側のループを参照します。 Perl 5.18.0 から利用可能な next EXPR 形式では、実行時に計算される ラベル名が使えます; それ以外は next LABEL と同一です。

next cannot be used to exit a block which returns a value such as eval {}, sub {}, or do {}, and should not be used to exit a grep() or map() operation.

nexteval {}, sub {}, do {} のように値を返すブロックから 抜けるのには使えません; また、grep() や map() 操作から抜けるのに 使うべきではありません。

Note that a block by itself is semantically identical to a loop that executes once. Thus next will exit such a block early.

ブロック自身は一回だけ実行されるループと文法的に同一であることに 注意してください。 従って、next はそのようなブロックから早く抜けるのに使えます。

See also continue for an illustration of how last, next, and redo work.

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 to next.

ほとんどの名前付き演算子と異なり、これは代入と同じ優先順位を持ちます。 また、関数のように見えるものの規則からも免れるので、next ("foo")."bar" と すると "bar" は next への引数の一部となります。