++ed by:

158 PAUSE users
131 non-PAUSE users.

Karen Etheridge 🐾 🌋
and 139 contributors

# NAME

Moose::Meta::Attribute::Native::Trait::Number - Helper trait for Num attributes

version 2.2011

# SYNOPSIS

``````  package Real;
use Moose;

has 'integer' => (
traits  => ['Number'],
is      => 'ro',
isa     => 'Num',
default => 5,
handles => {
set => 'set',
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 trait provides native delegation methods for numbers. All of the operations correspond to arithmetic operations like addition or multiplication.

# DEFAULT TYPE

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

# PROVIDED METHODS

All of these methods modify the attribute's value in place. All methods return the new 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

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

# AUTHORS

• Stevan Little <stevan.little@iinteractive.com>

• Dave Rolsky <autarch@urth.org>

• Jesse Luehrs <doy@tozt.net>

• Shawn M Moore <code@sartak.org>

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

• Karen Etheridge <ether@cpan.org>

• Florian Ragwitz <rafl@debian.org>

• Hans Dieter Pearcey <hdp@weftsoar.net>

• Chris Prather <chris@prather.org>