package Logger; my %instance; sub instance { my $class = shift; return $instance{$class} ||= bless {@_}, $class; }