我对Perl还是个新手,但我想做的是:
my @array2d;
while(<FILE>){
push(@array2d[$i], $_);
}
它不会编译,因为@array2d[$i]
不是一个数组,而是一个标量值。
我应该如何将@array2d声明为数组的数组?
当然,我不知道我有多少行。
发布于 2008-11-25 13:34:03
要创建数组的数组,或者更准确地说是arrayrefs的数组,请尝试如下所示:
my @array = ();
foreach my $i ( 0 .. 10 ) {
foreach my $j ( 0 .. 10 ) {
push @{ $array[$i] }, $j;
}
}
它会将值推送到解引用的arrayref上。您应该能够访问如下条目:
print $array[3][2];
发布于 2008-11-25 13:38:45
将您的"push“行更改为:
push(@{$array2d[$i]}, $_);
您基本上是通过用@{}将$array2d$i括起来使它成为一个数组...然后,您可以将元素推送到该数组引用的数组中。
https://stackoverflow.com/questions/317310
复制相似问题