---
name: "MooseX::AttributeHelpers::Trait::Bool"
section: "3pm"
platform: "linux"
package: "libmoosex-attributehelpers-perl"
version: "0.25-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/MooseX::AttributeHelpers::Trait::Bool"
---

# MooseX::AttributeHelpers::Trait::Bool(3pm)

simple boolean attribute

## NAME

MooseX::AttributeHelpers::Trait::Bool - simple boolean attribute

## VERSION

version 0.25

## SYNOPSIS

```
  package Room;
  use Moose;
  use MooseX::AttributeHelpers;

  has 'is_lit' => (
      metaclass => 'Bool',
      is        => 'rw',
      isa       => 'Bool',
      default   => sub { 0 },
      provides  => {
          set     => 'illuminate',
          unset   => 'darken',
          toggle  => 'flip_switch',
          not     => 'is_dark'
      }
  );
  my $room = Room->new();
  $room->illuminate;     # same as $room->is_lit(1);
  $room->darken;         # same as $room->is_lit(0);
  $room->flip_switch;    # same as $room->is_lit(not $room->is_lit);
  return $room->is_dark; # same as !$room->is_lit
```

## DESCRIPTION

This provides a simple boolean attribute, which supports most of the basic math operations.

## METHODS

- **meta**

  - **helper\_type**

  - **method\_constructors**

  - **has\_method\_provider**

  - **method\_provider**

  ## PROVIDED METHODS

It is important to note that all those methods do in place modification of the value stored in the attribute.

- *set*

  Sets the value to `1`.

- *unset*

  Set the value to `0`.

- *toggle*

  Toggle the value. If it's true, set to false, and vice versa.

- *not*

  Equivalent of 'not `$value`'.

## SUPPORT

Bugs may be submitted through the RT bug tracker \<https://rt.cpan.org/Public/Dist/Display.html?Name=MooseX-AttributeHelpers\> (or bug-MooseX-AttributeHelpers@rt.cpan.org \<mailto:bug-MooseX-AttributeHelpers@rt.cpan.org\>).

There is also a mailing list available for users of this distribution, at \<http://lists.perl.org/list/moose.html\>.

There is also an irc channel available for users of this distribution, at `"#moose"` on `"irc.perl.org"` \<irc://irc.perl.org/#moose\>.

## AUTHOR

Stevan Little \<stevan@iinteractive.com\>

Jason May

## COPYRIGHT AND LICENSE

This software is copyright (c) 2007 by Stevan Little and Infinity Interactive, Inc.

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