The last command is like the break 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. The continue block, if any, is not executed:
LINE: while (<STDIN>) { last LINE if /^$/; # exit when done with header #... } See also "continue" for an illustration of how last, next, and redo work.