NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.
All the Perl that's Practical to Extract and Report
Stories, comments, journals, and other submissions on use Perl; are Copyright 1998-2006, their respective owners.
Moose (Score:1)
Ya do know that Moose + MooseX::AttributeHelpers would abstract away all that code you wrote, right?
Boxing is nice, but not really what you need for your example.
Anyway, here's the same code with Moose:
package Stuff;
use Moose;
use MooseX::AttributeHelpers;
has args => (is => 'ro',
isa => 'ArrayRef',
metaclass => 'Collection::Array',
auto_deref => 1,
provides => {
push => 'add_args',
},
);
sub BUILDARGS {
shift; # shift off the invocant
return { args => \@_ };
}
Then:
my $foo = Stuff->new(qw/foo bar baz/);
$foo->add_args(qw/quux gorch/);
my @args = $foo->args; # foo, bar, baz, quux, gorch
Reply to This
Re: (Score:1)