所以我应该先说我实际上已经解决了这个问题,但是语法很糟糕,所以我想看看是否有一种更好的 Perl-ish 方法。
我有两个长度为 n (@genes
和@names
) 的数组。我想将它们组合成一个成对值的二维数组。
我现在的方法是;
$Num = Number of elements in each array
my @genes = ();
foreach my $i ( 0 .. $num-1 ) {
foreach my $j ( 0 .. 1 ) {
if ($j == 0){ push @{ $genes[$i] }, $names[$i];}
if ($j == 1){ push @{ $genes[$i] }, $lengths[$i];}
}
}
但这需要为每个附加列添加一个明确的行(现在我有两个 - 名称和长度)。也是很可怕的。只有母亲才会喜欢的代码。
有什么想法吗。注意
@genes = (\@lengths, \@names);
达不到我想要的。