| Next | Tricks of the Wizards | 208 |
@list1 = (1,2,3,4,5);
@list2 = (2,3,5,7,11);
@result = combine { $a + $b } @list1, @list2;
@result is (3,5,8,11,16)
sub combine (&\@\@) {
my ($code, $ar1, $ar2) = @_;
my @result;
while (@$ar1 && @$ar2) {
local $a = shift @$ar1;
local $b = shift @$ar2;
push @result, &$code;
}
@result;
}
| Next | ![]() |
Copyright © 2003 M. J. Dominus |