package Thing; sub new { bless {}, shift } sub DESTROY { my ($self) = @_; print "$self is dying\n"; die "$self died\n"; } package main; eval { my $b = Thing->new(); undef $b; }; print "Caught: $@\n" if $@;