next
命令类似于 C 语言中的 continue
语句;它开始循环的下一个迭代
LINE: while (<STDIN>) {
next LINE if /^#/; # discard comments
#...
}
请注意,如果上面有一个 continue
块,即使在被丢弃的行上也会执行它。如果省略 LABEL,则该命令引用最内层的封闭循环。next EXPR
形式(从 Perl 5.18.0 开始可用)允许在运行时计算标签名称,在其他方面与 next LABEL
相同。
next
不能从通常返回值的块中返回值,例如 eval {}
、sub {}
或 do {}
。它将执行其流程控制行为,这将排除任何返回值。它不应用于退出 grep
或 map
操作。
请注意,块本身在语义上等同于执行一次的循环。因此,next
将提前退出此类块。
另请参见 continue
,以了解 last
、next
和 redo
的工作原理。
与大多数命名运算符不同,它与赋值具有相同的优先级。它也不受看起来像函数规则的约束,因此 next ("foo")."bar"
将导致 "bar" 成为 next
的参数的一部分。