For instance in functional programming anonymous functions are passed around, even in arrays or hashes and then you might even want to assign further data to them. ... it's certainly not useless to do so.I completely agree it is far from useless. But there should be no problem passing a reference to an arbitrarily complex data structure as the parameter of a named parameter and then accessing the data in any legal way whatsoever. (And of course, this works equally well with either of the techniques for passing named parameters described in the OP, so this whole, rather verbose sub-thread is actually a little bit OT.)
To verify my understanding of what you have written and to illustrate what I mean, an example:
>perl -wMstrict -le "my $funcs = [ sub { print q{i'm at index zero} }, sub { print q{and i'm at index 1} }, ]; add_func({ fns => $funcs, fn => sub { print q{i'm new here} }, at => 3 }); $funcs->[0](); $funcs->[3](); sub add_func { my %args = %{ shift() }; $args{fns}->[$args{at}] = $args{fn} } " i'm at index zero i'm new here
It wasn't clear that your problem is "what is it good for", you sounded more like "theres no difference".There is, indeed, a vast difference between passing a reference as a named parameter name (i.e., a hash key) and passing a reference as the parameter (i.e., hash value). My problem with passing a reference as a name was squarely in the "what's it good for" camp.
In reply to Re^12: Preferred technique for named subroutine parameters?
by AnomalousMonk
in thread Preferred technique for named subroutine parameters?
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |