##
my $object = MyClass->new;
print $object->name;
print $object->{'name'};
####
package MyClass;
use strict;
use vars qw/$MUSTHAVEONLYONEINSTANCE/;
$MUSTHAVEONLYONEINSTANCE = 0;
...
sub new {
return undef if $MUSTHAVEONLYONEINSTANCE;
$MUSTHAVEONLYONEINSTANCE = 1;
...
}
sub DESTROY {
$MUSTHAVEONLYONEINSTANCE = 0;
}