package Dienst; my $singleton; sub new { # ... setup } sub singleton { $singleton ||= shift->new(@_) }