last LABEL
last EXPR
last

last 命令类似于 C 语言中的 break 语句(用于循环);它立即退出当前循环。如果省略 LABEL,则该命令引用最内层的循环。last EXPR 形式(从 Perl 5.18.0 开始可用)允许在运行时计算标签名称,在其他方面与 last LABEL 相同。continue 块(如果有)不会执行。

LINE: while (<STDIN>) {
    last LINE if /^$/;  # exit when done with header
    #...
}

last 无法从通常返回值的块中返回值,例如 eval {}sub {}do {}。它将执行其流程控制行为,这将排除任何返回值。它不应用于退出 grepmap 操作。

请注意,块本身在语义上等同于执行一次的循环。因此,last 可用于实现从此类块的提前退出。

另请参阅 continue,以了解 lastnextredo 的工作原理。

与大多数命名运算符不同,此运算符具有与赋值相同的优先级。它也不受“看起来像函数”规则的约束,因此 last ("foo")."bar" 将导致“bar”成为 last 的参数的一部分。