in reply to composite pattern, best practice, pushing into an array in a hash, reusing the get array method
To reuse getCreditAccounts(), you'd have to first rewrite the method to return array ref, and not a copy of the array you are attempting to ultimately change.
_____________________
"We've all heard that a million monkeys banging on a million typewriters will eventually reproduce
the entire works of Shakespeare. Now, thanks to the Internet, we know this is not true."
From there, you could possibly do something like# private getCreditAccounts sub getCreditAccounts { caller(0) eq __PACKAGE__ || confess "getCreditAccounts is private" +; my $closure = shift; my @accounts = @{ &{$closure}( "CREDITACCOUNTS" ) }; return @accounts; } # working on a copy of the original array... my @anotherArray = $obj->getCreditAccounts(); push @anotherArray, "Data";
# private getCreditAccounts # now returning reference to the original array sub getCreditAccounts { caller(0) eq __PACKAGE__ || confess "getCreditAccounts is private" +; my $closure = shift; return &{$closure}( "CREDITACCOUNTS" ) }; } # public to add accounts to the creditaccounts sub addCreditAccount { my $closure = shift; my $account = shift; push @{ $closure->getCreditAccounts() }, $account; }
_____________________
"We've all heard that a million monkeys banging on a million typewriters will eventually reproduce
the entire works of Shakespeare. Now, thanks to the Internet, we know this is not true."
Robert Wilensky, University of California
In Section
Seekers of Perl Wisdom