last
- last LABEL
- last
The
last
command is like thebreak
statement in C (as used in loops); it immediately exits the loop in question. If the LABEL is omitted, the command refers to the innermost enclosing loop. Thecontinue
block, if any, is not executed:LINE: while (<STDIN>) { last LINE if /^$/; # exit when done with header #... }
last
cannot be used to exit a block which returns a value such aseval {}
,sub {}
ordo {}
, and 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
last
can be used to effect an early exit out of such a block.See also continue for an illustration of how
last
,next
, andredo
work.