/usr/share/perl5/MouseX/NativeTraits/Num.pm is in libmousex-nativetraits-perl 1.07-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | package MouseX::NativeTraits::Num;
use Mouse::Role;
with 'MouseX::NativeTraits';
sub method_provider_class {
return 'MouseX::NativeTraits::MethodProvider::Num';
}
sub helper_type {
return 'Num';
}
no Mouse::Role;
1;
__END__
=pod
=head1 NAME
MouseX::NativeTraits::Num - Helper trait for Num attributes
=head1 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);
=head1 DESCRIPTION
This provides a simple numeric attribute, which supports most of the
basic math operations.
=head1 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.
=over 4
=item B<set($value)>
Alternate way to set the value.
=item B<add($value)>
Adds the current value of the attribute to C<$value>.
=item B<sub($value)>
Subtracts C<$value> from the current value of the attribute.
=item B<mul($value)>
Multiplies the current value of the attribute by C<$value>.
=item B<div($value)>
Divides the current value of the attribute by C<$value>.
=item B<mod($value)>
Returns the current value of the attribute modulo C<$value>.
=item B<abs>
Sets the current value of the attribute to its absolute value.
=back
=head1 METHODS
=over 4
=item B<meta>
=item B<method_provider_class>
=item B<helper_type>
=back
=head1 SEE ALSO
L<MouseX::NativeTraits>
=cut
|