我试图在不键入@array1
,@array2
等的情况下创建23个数组,然后使用数组@r
中的变量加载它们,如果{ {1}}匹配数组编号(如果$chrid
应放在$chrid=1
中)。我怎样才能做到这一点?
这是我到目前为止所做的:
@array1
答案 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;