Class::MakeMethods::Emulator::Singleton(3) Emulate Class::Singleton


use Class::MakeMethods::Emulator::Singleton;

# returns a new instance
my $one = Class::MakeMethods::Emulator::Singleton->instance();
# returns same instance
my $two = Class::MakeMethods::Emulator::Singleton->instance();


This module emulates the functionality of Class::Singleton, using Class::MakeMethods to generate similar methods.

You may use it directly, as shown in the SYNOPSIS above,

Furthermore, you may call "use Class::MakeMethods::Emulator::Singleton '-take_namespace';" to alias the Class::Singleton namespace to this package, and subsequent calls to the original package will be transparently handled by this emulator. To remove the emulation aliasing, call "use Class::MakeMethods::Emulator::Singleton '-release_namespace'".

Caution: This affects all subsequent uses of Class::Singleton in your program, including those in other modules, and might cause unexpected effects.


A Singleton describes an object class that can have only one instance in any system. An example of a Singleton might be a print spooler or system registry. This module implements a Singleton class from which other classes can be derived. By itself, the Class::Singleton module does very little other than manage the instantiation of a single object. In deriving a class from Class::Singleton, your module will inherit the Singleton instantiation method and can implement whatever specific functionality is required.