---
name: "MooX::Singleton"
section: "3pm"
platform: "linux"
package: "libmoox-singleton-perl"
version: "1.20-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/MooX::Singleton"
---

# MooX::Singleton(3pm)

turn your Moo class into singleton

## NAME

MooX::Singleton - turn your Moo class into singleton

## VERSION

version 1.20

## SYNOPSIS

```
    package MyApp;
    use Moo;
    with 'MooX::Singleton';
    package main;
    my $instance = MyApp->instance(@optional_init_args);
    my $same = MyApp->instance;
```

## DESCRIPTION

Role::Tiny role that provides "instance" method turning your object into singleton.

## METHODS

### instance

```
    my $singleton = MyApp->instance(@args1);
    my $same = MyApp->instance;
    # @args2 are ignored
    my $above = MyApp->instance(@args2);
```

Creates a new object initialized with arguments provided and then returns it.

NOTE: Subsequent calls to `"instance"` will return the singleton instance ignoring any arguments. This is different from MooseX::Singleton which does not allow any arguments.

## AUTHOR

Alex J. G. BurzyXski \<ajgb@cpan.org\>

## COPYRIGHT AND LICENSE

This software is copyright (c) 2012 by Alex J. G. BurzyXski \<ajgb@cpan.org\>.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
