logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Sub::HandlesVia::HandlerLibrary::Number - library of number-related methods

Author

       Toby Inkster <tobyink@cpan.org>.

Bugs

       Please report any bugs to <https://github.com/tobyink/p5-sub-handlesvia/issues>.

Delegatable Methods

abs()
       Finds the absolute value of the current number, updating the attribute.

         my $object = My::Class->new( attr => -5 );
         $object->my_abs;
         say $object->attr; ## ==> 5

   add($addend)
       Arguments: Num.

       Adds a number to the existing number, updating the attribute.

         my $object = My::Class->new( attr => 4 );
         $object->my_add( 5 );
         say $object->attr; ## ==> 9

   cmp($num)
       Arguments: Num.

       Returns "$object->attr <=> $num".

   div($divisor)
       Arguments: Num.

       Divides the existing number by a number, updating the attribute.

         my $object = My::Class->new( attr => 6 );
         $object->my_div( 2 );
         say $object->attr; ## ==> 3

   eq($num)
       Arguments: Num.

       Returns "$object->attr == $num".

   ge($num)
       Arguments: Num.

       Returns "$object->attr >= $num".

   get()
       Returns the current value of the number.

         my $object = My::Class->new( attr => 4 );
         say $object->my_get; ## ==> 4

   gt($num)
       Arguments: Num.

       Returns "$object->attr > $num".

   le($num)
       Arguments: Num.

       Returns "$object->attr <= $num".

   lt($num)
       Arguments: Num.

       Returns "$object->attr < $num".

   mod($divisor)
       Arguments: Num.

       Finds the current number modulo a divisor, updating the attribute.

         my $object = My::Class->new( attr => 5 );
         $object->my_mod( 2 );
         say $object->attr; ## ==> 1

   mul($factor)
       Arguments: Num.

       Multiplies the existing number by a number, updating the attribute.

         my $object = My::Class->new( attr => 2 );
         $object->my_mul( 5 );
         say $object->attr; ## ==> 10

   ne($num)
       Arguments: Num.

       Returns "$object->attr != $num".

   set($value)
       Arguments: Num.

       Sets the number to a new value.

         my $object = My::Class->new( attr => 4 );
         $object->my_set( 5 );
         say $object->attr; ## ==> 5

   sub($subtrahend)
       Arguments: Num.

       Subtracts a number from the existing number, updating the attribute.

         my $object = My::Class->new( attr => 9 );
         $object->my_sub( 6 );
         say $object->attr; ## ==> 3

Description

       This is a library of methods for Sub::HandlesVia.

Disclaimer Of Warranties

       THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
       LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.

perl v5.40.1                                       2025-04-01              Sub::HandlesVi...Library::Number(3pm)

Name

       Sub::HandlesVia::HandlerLibrary::Number - library of number-related methods

See Also

       Sub::HandlesVia.

Synopsis

         package My::Class {
           use Moo;
           use Sub::HandlesVia;
           use Types::Standard 'Num';
           has attr => (
             is => 'rwp',
             isa => Num,
             handles_via => 'Number',
             handles => {
               'my_abs' => 'abs',
               'my_add' => 'add',
               'my_cmp' => 'cmp',
               'my_div' => 'div',
               'my_eq' => 'eq',
               'my_ge' => 'ge',
               'my_get' => 'get',
               'my_gt' => 'gt',
               'my_le' => 'le',
               'my_lt' => 'lt',
               'my_mod' => 'mod',
               'my_mul' => 'mul',
               'my_ne' => 'ne',
               'my_set' => 'set',
               'my_sub' => 'sub',
             },
           );
         }

See Also