---
name: "Bread::Board::LifeCycle::Singleton"
section: "3pm"
platform: "linux"
package: "libbread-board-perl"
version: "0.37-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Bread::Board::LifeCycle::Singleton"
---

# Bread::Board::LifeCycle::Singleton(3pm)

service role for singleton lifecycle

## NAME

Bread::Board::LifeCycle::Singleton - service role for singleton lifecycle

## VERSION

version 0.37

## DESCRIPTION

Sub-role of Bread::Board::LifeCycle, this role defines the "singleton" lifecycle for a service. The `"get"` method will only do its work the first time it is invoked; subsequent invocations will return the same object.

## ATTRIBUTES

### "instance"

The object build by the last call to `"get"` to actually do any work, and returned by any subsequent call to `"get"`.

## METHODS

### "get"

The first time this is called (or the first time after calling "flush\_instance"), the actual `"get"` method will be invoked, and its return value cached in the "instance" attribute. The value of that attribute will always be returned, so you can call `"get"` as many time as you need, and always receive the same instance.

### "has\_instance"

Predicate for the "instance" attribute.

### "flush\_instance"

Clearer for the "instance" attribute. Clearing the attribute will cause the next call to `"get"` to instantiate a new object.

## AUTHOR

Stevan Little \<stevan@iinteractive.com\>

## BUGS

Please report any bugs or feature requests on the bugtracker website https://github.com/stevan/BreadBoard/issues

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

## COPYRIGHT AND LICENSE

This software is copyright (c) 2019, 2017, 2016, 2015, 2014, 2013, 2011, 2009 by Infinity Interactive.

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