2 package MooseX::Singleton::Meta::Class;
4 use MooseX::Singleton::Meta::Instance;
6 extends 'Moose::Meta::Class';
12 $class->SUPER::initialize(
14 instance_metaclass => 'MooseX::Singleton::Meta::Instance',
19 override construct_instance => sub {
21 my $pkg = $class->name;
25 # create exactly one instance
26 if (!defined ${"$pkg\::singleton"}) {
27 ${"$pkg\::singleton"} = super;
30 return ${"$pkg\::singleton"};