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::Scalar - library of scalar-related methods

Author

       Toby Inkster <tobyink@cpan.org>.

Bugs

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

Delegatable Methods

make_getter()
       Returns a getter coderef.

         my $object = My::Class->new( attr => 10 );
         my $getter = $object->my_make_getter;
         $object->_set_attr( 11 );
         say $getter->(); ## ==> 11

   make_setter()
       Returns a setter coderef.

         my $object = My::Class->new( attr => 10 );
         my $setter = $object->my_make_setter;
         $setter->( 11 );
         say $object->attr; ## ==> 11

   scalar_reference()
       Returns a scalar reference to the attribute value's slot within its object.

         my $object = My::Class->new( attr => 10 );
         my $ref = $object->my_scalar_reference;
         $$ref++;
         say $object->attr; ## ==> 11

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::Scalar(3pm)

Name

       Sub::HandlesVia::HandlerLibrary::Scalar - library of scalar-related methods

See Also

       Sub::HandlesVia.

Synopsis

         package My::Class {
           use Moo;
           use Sub::HandlesVia;
           use Types::Standard 'Any';
           has attr => (
             is => 'rwp',
             isa => Any,
             handles_via => 'Scalar',
             handles => {
               'my_make_getter' => 'make_getter',
               'my_make_setter' => 'make_setter',
               'my_scalar_reference' => 'scalar_reference',
             },
           );
         }

See Also