package Test; $|++; print "Creation\n"; my $obj = new Foo; my $a = $obj; # comment in and out to see behavour change print "Undef....\n"; undef $obj; print "We have undefed!\n" unless defined $obj; print "Sleep....\n"; sleep 2; END{ print "Exiting\n" } package Foo; sub new { bless {}, shift }; sub DESTROY { print "Destroy.....\n" } __END__ Creation Undef.... We have undefed! Sleep.... Destroy..... Exiting