Moose::Meta::Attribute::Native::Trait::Number(3) User Contributed Perl Documentation Moose::Meta::Attribute::Native::Trait::Number(3)

# [SYNOPSIS](#SYNOPSIS)

```
  package Real;
  use Moose;
  has 'integer' => (
      traits  => ['Number'],
      is      => 'ro',
      isa     => 'Num',
      default => 5,
      handles => {
          set => 'set',
          add => 'add',
          sub => 'sub',
          mul => 'mul',
          div => 'div',
          mod => 'mod',
          abs => 'abs',
      },
  );
  my $real = Real->new();
  $real->add(5);    # same as $real->integer($real->integer + 5);
  $real->sub(2);    # same as $real->integer($real->integer - 2);
```

# [DESCRIPTION](#DESCRIPTION)

This trait provides native delegation methods for numbers. All of the operations correspond to arithmetic operations like addition or multiplication.

# [DEFAULT TYPE](#DEFAULT_TYPE)

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

# [PROVIDED METHODS](#PROVIDED_METHODS)

All of these methods modify the attribute's value in place. All methods return the new value.

- **add($value)**
  
  Adds the current value of the attribute to $value.
- **sub($value)**
  
  Subtracts $value from the current value of the attribute.
- **mul($value)**
  
  Multiplies the current value of the attribute by $value.
- **div($value)**
  
  Divides the current value of the attribute by $value.
- **mod($value)**
  
  Returns the current value of the attribute modulo $value.
- **abs**
  
  Sets the current value of the attribute to its absolute value.

# [BUGS](#BUGS)

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

2026-10-01 perl v5.44.0

---

Document: Moose::Meta::Attribute::Native::Trait::Number(3pm) from perl-moose 2.4001-r0 (Chainguard OS)
Source: https://github.com/moose/Moose
