$ cat Foo.pm package Foo; use Moose; sub DEMOLISH { print STDERR "I R GONE\n"; } 1; __END__ $ perl -MFoo -e 'my $f = Foo->new; print qq{\$f is $f\n}; $f = undef;' $f is Foo=HASH(0xa073a8) I R GONE