package StaticClass; my $attrib = '...'; # print StaticClass->method(); sub method { my ($class) = @_; return $attrib; } 1; #### package SingletonClass; my $singleton; sub new { return $singleton ||= bless({ attrib => '...', }); } # print $obj->method(); sub method { my ($self) = @_; return $self->{attrib}; } 1;