last
last LABEL
last EXPR
last
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 last EXPR
form, available starting in Perl 5.18.0, allows a label name to be computed at run time, and is otherwise identical to last LABEL
. 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 that 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 for an illustration of how last
, next
, and redo
work.
Unlike most named operators, this has the same precedence as assignment. It is also exempt from the looks-like-a-function rule, so last ("foo")."bar"
will cause "bar" to be part of the argument to last
.
© 1993–2016 Larry Wall and others
Licensed under the GNU General Public License version 1 or later, or the Artistic License.
The Perl logo is a trademark of the Perl Foundation.
https://perldoc.perl.org/5.20.2/functions/last.html