my $dead = 0; END { print "END: dead=$dead\n" } sub DESTROY { print "DESTROY: @{$_[0]}\n"; return if $dead; print "die...\n"; $dead = 1; exit(1); } my $a = bless [1]; { bless [2] } print "at end"; __END__ DESTROY: 2 die... DESTROY: 1 END: dead=1