Well, obviously it is slower and uglier than using normal control loops, and I wouldn't suggest using it always. But if you have to write repeated control structures, and don't want to write the same code many times, it may be useful.
As for subrefs, this code is essentially a pretty interface to them, though you can also use strings to eval. I assume what you are thinking of is:
my $subref = sub {print shift() . "\n";};
my $subref2 = sub {print "Length is " . length shift() . "\n";};
foo($subref);
foo($subref2);
sub foo {
my $code = shift;
foreach (@some_array) {
&$code($_);
}
}
which is the same but less flexible. But maybe you have something else in mind.
dave hj~ |