$ perl -Mstrict -wE'$SIG{__DIE__}=sub{last}; die "hi"' Exiting subroutine via last at -e line 1. Can't "last" outside a loop block at -e line 1. # no strict $ perl -wE'$SIG{__DIE__}=sub{last}; die "hi"' Exiting subroutine via last at -e line 1. Can't "last" outside a loop block at -e line 1. # no warnings $ perl -E'$SIG{__DIE__}=sub{last}; die "hi"' Can't "last" outside a loop block at -e line 1. # -e instead of -E $ perl -e'$SIG{__DIE__}=sub{last}; die "hi"' Can't "last" outside a loop block at -e line 1. # put last in a while loop, dies $ perl -e'$SIG{__DIE__}=sub{while(1){last}}; die "hi"' hi at -e line 1. # put last in a non-loop block, dies $ perl -e'$SIG{__DIE__}=sub{{last}}; die "hi"' hi at -e line 1.