last
指令類似於 C 語言中的 break
陳述式(用於迴圈中);它會立即退出目前迴圈。如果省略 LABEL,指令會指涉最內層的封閉迴圈。從 Perl 5.18.0 開始提供的 last EXPR
形式允許在執行階段計算標籤名稱,而其他部分與 last LABEL
相同。如果有 continue
區塊,則不會執行
LINE: while (<STDIN>) {
last LINE if /^$/; # exit when done with header
#...
}
last
無法傳回值自通常傳回值的區塊,例如 eval {}
、sub {}
或 do {}
。它會執行流程控制行為,這會排除任何傳回值。不應使用它來退出 grep
或 map
作業。
請注意,區塊本身在語義上與執行一次的迴圈相同。因此,last
可用於提前退出此類區塊。
另請參閱 continue
,以了解 last
、next
和 redo
的運作方式。
與大多數命名運算子不同,此運算子的優先順序與賦值相同。它也不受類似函式的規則約束,因此 last ("foo")."bar"
會導致「bar」成為 last
參數的一部分。