---
name: "Class::MakeMethods::Emulator::Singleton"
section: "3pm"
platform: "linux"
package: "libclass-makemethods-perl"
version: "1.01-7"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Class::MakeMethods::Emulator::Singleton"
---

# Class::MakeMethods::Emulator::Singleton(3pm)

Emulate Class::Singleton

## NAME

Class::MakeMethods::Emulator::Singleton - Emulate Class::Singleton

## SYNOPSIS

```
  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();
```

## COMPATIBILITY

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.

## DESCRIPTION

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.

## SEE ALSO

See Class::MakeMethods for general information about this distribution.

See Class::MakeMethods::Emulator for more about this family of subclasses.

See Class::Singleton for documentation of the original module.

For a description and discussion of the Singleton class, see  "Design Patterns", Gamma et al, Addison-Wesley, 1995, ISBN 0-201-63361-2.

See "new" in Class::MakeMethods::Hash and "instance" in Class::MakeMethods::ClassVar for documentation of the created methods.
