package GlobalVarsSingleton; my $instance; # a 'private' ctor sub _new { # init stuff } sub Instance { my ($class, %args) = @_; unless (defined $instance) { $instance = $class->_new(%args); return $instance; } else { return $instance; } }