- next LABEL
- next EXPR
- next
-
The
next
command is like thecontinue
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. Thenext EXPR
form, 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
と同一です。next
cannot 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 agrep
ormap
operation.next
はeval {}
,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
はそのようなブロックから早く抜けるのに使えます。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
への引数の一部となります。