package Class::WeakSingleton; use Class::Singleton; use Scalar::Util (); use vars qw/ @ISA /; @ISA = qw/ Class::Singleton /; sub instance { my $class = shift; my $instance = $class->SUPER::instance( @_ ); weaken( \$instance ); return $instance; } 1; __END__