Commit | Line | Data |
---|---|---|
109b110b | 1 | #!/usr/bin/env perl |
2 | package MooseX::Singleton::Object; | |
3 | use Moose; | |
4 | use metaclass 'MooseX::Singleton::Meta::Class'; | |
5 | ||
6 | extends 'Moose::Object'; | |
7 | ||
8 | no strict 'refs'; | |
9 | ||
10 | override new => sub { | |
11 | my $class = shift; | |
12 | ||
13 | # create exactly one instance | |
14 | if (!defined ${"$class\::singleton"}) { | |
15 | ${"$class\::singleton"} = super; | |
16 | } | |
17 | ||
18 | return ${"$class\::singleton"}; | |
19 | }; | |
20 | ||
21 | sub instance { shift->new } | |
22 | ||
23 | 1; | |
24 |