$ perl -wle' sub Foo::DESTROY { eval { print "everything ok" }; } eval { my $o = bless {}, "Foo"; die; }; if ($@) { print "ERROR: $@"; } else { print "no error" }' everything ok no error