last - exit a block prematurely

- NAME
- SYNOPSIS
- DESCRIPTION

# NAME

last - exit a block prematurely

# SYNOPSIS

last LABEL

last

# DESCRIPTION

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
            #...
        }

`last` cannot be used to exit a block which returns a value such as `eval {}`, `sub {}` or `do {}`, 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 in the perlfunc manpage for an illustration of how `last`, `next`, and `redo` work.

last - exit a block prematurely