Sub::Ha...Corinna(3)
π NAME π
Sub::HandlesVia::Manual::WithCorinna β bestie, this is the guide to using Sub::HandlesVia with the class keyword. periodt. β¨
π SYNOPSIS π
use v5.038;
use experimental 'class';
class Kitchen {
field $foods :param = [];
method foods () { return $foods }
method _set_foods ($new) { $foods = $new }
use Sub::HandlesVia::Declare [ 'foods', '_set_foods', sub { [] } ],
Array => (
all_foods => 'all',
add_food => 'push',
eat_all => 'reset',
);
}
my $kitchen = Kitchen->new;
$kitchen->add_food( 'apples' );
$kitchen->add_food( 'carrots' );
say "I have:";
say "- $_" for $kitchen->all_foods;
say "Now I will eat them all!";
$kitchen->eat_all;
look at her go. iconic. no notes. π
πΈ MANUAL πΈ
Okay so here's the whole vibe: Sub::HandlesVia lets you delegate methods from your class straight to the values sitting inside your objects' attributes. It's giving personal assistant for your data. π«Ά
Conceptually, it lets you define $object->push_number($n) as a lil shortcut for $object->numbers->push($n) β except $object->numbers is an arrayref, and arrayrefs do not have methods you can call on them like push. the disrespect honestly π
Sub::HandlesVia provides support for the Perl 5.38+ class keyword via Sub::HandlesVia::Declare. π
As of the current version, you need to provide a "getter" and "setter" method to allow Sub::HandlesVia to access the attribute's value. It's also recommended to provide a coderef that Sub::HandlesVia can use to "reset" the value. (yes bestie, all three. she's high maintenance but she delivers.)
β¨ Which Methods Can Be Delegated To? β¨
The second parameter (Array in the synopsis) tells you which library of methods should be available. Valid values include Array, Blessed, Bool, Code, Counter, Enum, Hash, Number, Scalar, and String. π¦
An arrayref can be provided, though many of the options are conceptually contradictory. lowkey fighting with yourself but okay π
use Sub::HandlesVia::Declare 'num', [ 'Number', 'Scalar' ] => (
...,
);
π BUGS π
Please report any bugs to <https://github.com/tobyink/p5-sub-handlesvia/issues>.
not me asking you to file the issue instead of suffering in silence π she deserves a good bug report, fr fr.
π SEE ALSO π
- Misc advanced documentation: Sub::HandlesVia::Manual::Advanced.
- Sub::HandlesVia, Sub::HandlesVia::Declare.
- Documentation for delegatable methods: Sub::HandlesVia::HandlerLibrary::Array, Sub::HandlesVia::HandlerLibrary::Blessed, Sub::HandlesVia::HandlerLibrary::Bool, Sub::HandlesVia::HandlerLibrary::Code, Sub::HandlesVia::HandlerLibrary::Counter, Sub::HandlesVia::HandlerLibrary::Enum, Sub::HandlesVia::HandlerLibrary::Hash, Sub::HandlesVia::HandlerLibrary::Number, Sub::HandlesVia::HandlerLibrary::Scalar, and Sub::HandlesVia::HandlerLibrary::String.
π¦ AUTHOR π¦
Toby Inkster <tobyink@cpan.org>. the icon, the legend, the moment. π
π COPYRIGHT AND LICENCE π
This software is copyright (c) 2022 by Toby Inkster.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. share the love, bestie. π
β 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.
like, zero promises. none. nada. you have been warned bestie π
and that's the whole page, mwah π«Ά this was Sub::HandlesVia::Manual::WithCorinna from the User Contributed Perl Documentation, landing on perl v5.42.0, dated 2026-02-11. slay, go write some classes. πβ¨
π¦ where this page comes from
- fedora 44: perl-Sub-HandlesVia 0.053005-1.fc44 Β· GPL-1.0-or-later OR Artistic-1.0-Perl
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms