http://www.perlmonks.org?node_id=252425


in reply to OO Configuration Values (version 2)

Firstly, nice post trs80++

My only comment would be on the use of the __PACKAGE__ pragma for establishing the scope of the singleton of the configuration object. In the comments of the Class::Singleton module, this approach is discussed and dismissed in favour of the full reference to a variable within the current class as determined by the class name passed to the class method. This approach permits better facilitates inheritance allowing inherited namespaces to have their own instance singleton.

For example, from the instance method of Class::Singleton:

sub instance { my $class = shift; # get a reference to the _instance variable in the $class package no strict 'refs'; my $instance = \${ "$class\::_instance" }; defined $$instance ? $$instance : ($$instance = $class->_new_instance(@_)); }

I would only add to this by stating that I have quite happily used this singleton construct without issue in a number of object-orientated projects.

 

perl -le 'print+unpack("N",pack("B32","00000000000000000000001001001111"))'