The next
command is like the continue
statement in C; it starts the next iteration of the loop:
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
.
next
cannot return a value from a block that typically returns a value, such as eval {}
, sub {}
, or do {}
. It will perform its flow control behavior, which precludes any return value. It should not be used to exit a grep
or map
operation.
Note that a block by itself is semantically identical to a loop that executes once. Thus next
will exit such a block early.
See also continue
for an illustration of how last
, next
, and redo
work.
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
.