---
name: "MouseX::NativeTraits::Num"
section: "3pm"
platform: "linux"
package: "libmousex-nativetraits-perl"
version: "1.09-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/MouseX::NativeTraits::Num"
---

# MouseX::NativeTraits::Num(3pm)

Helper trait for Num attributes

## NAME

MouseX::NativeTraits::Num - Helper trait for Num attributes

## SYNOPSIS

```
  package Real;
  use Mouse;
  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

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

## PROVIDED METHODS

It is important to note that all those methods do in place modification of the value stored in the attribute. These methods are implemented within this package.

- **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.

## METHODS

- **meta**

  - **method\_provider\_class**

  - **helper\_type**

  ## SEE ALSO

MouseX::NativeTraits
