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 的参数的一部分。