List::MoreUtils has a couple of functions that do what you want - pairwise and each_array
use List::MoreUtils qw/pairwise each_array/;
my @totalexpenses = qw/ ONE TWO THREE/;
my @totalcosts = 1 .. 3;
print "pairwise\n\n";
$a = $b = 0; # avoid "used only once" warnings
print pairwise { sprintf "%10s %10s\n", $a, $b } @totalexpenses, @tota
+lcosts;
#or pairwise { printf "%10s %10s\n", $a, $b } @totalexpenses, @totalco
+sts;
print "\neach_array\n\n";
my $iter = each_array @totalexpenses, @totalcosts;
while ( my ( $costs, $exp ) = $iter->() ) {
printf "%10s %10s\n", $costs, $exp;
}
Output:
pairwise
ONE 1
TWO 2
THREE 3
each_array
ONE 1
TWO 2
THREE 3
update: added pairwise in void context alternative |