Список:: модуль MoreUtils имеет функцию zip/сетки, которая должна добиться цели:
use List::MoreUtils qw(zip);
my @numbers = (1, 2, 3);
my @fruit = ('apple', 'orange', 'grape');
my @zipped = zip @numbers, @fruit;
Вот источник сетчатой функции:
sub mesh (\@\@;\@\@\@\@\@\@\@\@\@\@\@\@\@\@\@\@\@\@\@\@\@\@\@\@\@\@\@\@\@\@) {
my $max = -1;
$max < $#$_ && ($max = $#$_) for @_;
map { my $ix = $_; map $_->[$ix], @_; } 0..$max;
}
TraceSource - это более новая версия (начиная с .NET 2), а Trace - более старая версия, дополнительная информация доступна здесь: