perl -we "sub fail{die 'test'}; END{ print qq'\nF\n'; fail() }; $SIG{__DIE__} = sub{print qq!\nS\n!; fail()}; fail()" S test at -e line 1. F S S test at -e line 1. #### #!perl -w use strict; my $counter = 0; sub fail{ ++$counter; print "$counter: Fail called.\n"; die "DEATH ". __LINE__ ."\n" } END{ ++$counter; print "$counter: End called.\n"; fail() } $SIG{__DIE__} = sub{ ++$counter; print "$counter: SigDie called.\n"; fail() }; fail() #### 1: Fail called. 2: SigDie called. 3: Fail called. DEATH 4 4: End called. 5: Fail called. 6: SigDie called. 7: Fail called. 8: SigDie called. 9: Fail called. DEATH 4