my $oneTrueSelf; sub new { if($oneTrueSelf) { return $oneTrueSelf; } else { my $type = shift; my $this = {} $oneTrueSelf = bless $this, $type; return $this->new(); } }