如何在perl中一次创建多个数组

时间:2015-08-10 19:56:07

标签: arrays perl

我试图在不键入@array1@array2等的情况下创建23个数组,然后使用数组@r中的变量加载它们,如果{ {1}}匹配数组编号(如果$chrid应放在$chrid=1中)。我怎样才能做到这一点?

这是我到目前为止所做的:

@array1

1 个答案:

答案 0 :(得分:5)

您可以使用数组数组,其中每个子数组都存储在数组数组中的顺序增加的索引处。这是可以的样子,但我仍然不清楚你想要存储的数据:

use warnings;
use strict;

my @chr;
open my $input_fh, '<', $ARGV[0]
   or die "Unable to open $ARGV[0] for reading: $!";
while (< $input_fh> ) {
    # you can unpack your data in a single statement
    my ($snps, $pval, $pmid, $chrpos, $chrid) = split /\t/;

    # unclear what you actually want to store
    push @{ $chr[$chrid] }, ( $snps, $pval, $pmid, $chrpos, $chrid );

}
close $input_fh;