---
name: "Moose::Meta::Attribute::Native::Trait::Counter"
section: "3pm"
platform: "linux"
package: "perl-moose"
version: "2.4001-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Moose::Meta::Attribute::Native::Trait::Counter"
---

# Moose::Meta::Attribute::Native::Trait::Counter(3pm)

Helper trait for Int attributes which represent counters

## NAME

Moose::Meta::Attribute::Native::Trait::Counter - Helper trait for Int attributes which represent counters

## VERSION

version 2.4001

## SYNOPSIS

```
  package MyHomePage;
  use Moose;
  has 'counter' => (
      traits  => ['Counter'],
      is      => 'ro',
      isa     => 'Num',
      default => 0,
      handles => {
          inc_counter   => 'inc',
          dec_counter   => 'dec',
          reset_counter => 'reset',
      },
  );
  my $page = MyHomePage->new();
  $page->inc_counter;    # same as $page->counter( $page->counter + 1 );
  $page->dec_counter;    # same as $page->counter( $page->counter - 1 );
  my $count_by_twos = 2;
  $page->inc_counter($count_by_twos);
```

## DESCRIPTION

This trait provides native delegation methods for counters. A counter can be any sort of number (integer or not). The delegation methods allow you to increment, decrement, or reset the value.

## DEFAULT TYPE

If you don't provide an `"isa"` value for your attribute, it will default to `"Num"`.

## PROVIDED METHODS

- •

  **set($value)**

  Sets the counter to the specified value and returns the new value.

  This method requires a single argument.

- •

  **inc**

- •

  **inc($arg)**

  Increases the attribute value by the amount of the argument, or by 1 if no argument is given. This method returns the new value.

  This method accepts a single argument.

- •

  **dec**

- •

  **dec($arg)**

  Decreases the attribute value by the amount of the argument, or by 1 if no argument is given. This method returns the new value.

  This method accepts a single argument.

- •

  **reset**

  Resets the value stored in this slot to its default value, and returns the new value.

## BUGS

See "BUGS" in Moose for details on reporting bugs.

## AUTHORS

- •

  Stevan Little \<stevan@cpan.org\>

- •

  Dave Rolsky \<autarch@urth.org\>

- •

  Jesse Luehrs \<doy@cpan.org\>

- •

  Shawn M Moore \<sartak@cpan.org\>

- •

  יובל קוג'מן (Yuval Kogman) \<nothingmuch@woobling.org\>

- •

  Karen Etheridge \<ether@cpan.org\>

- •

  Florian Ragwitz \<rafl@debian.org\>

- •

  Hans Dieter Pearcey \<hdp@cpan.org\>

- •

  Chris Prather \<chris@prather.org\>

- •

  Matt S Trout \<mstrout@cpan.org\>

## COPYRIGHT AND LICENSE

This software is copyright (c) 2006 by 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.
