我正在尝试制作嵌套数组的副本,看来我继续通过我的尝试进行引用。
更具体地说,我正在尝试拥有一个数组数组,其中每个子数组都基于前一个数组构建。这是我的尝试:
#!/usr/bin/perl -w
use strict;
use warnings;
my @aoa=[(1)];
my $i = 2;
foreach (@aoa){
my $temp = $_;#copy current array into $temp
push $temp, $i++;
push @aoa, $temp;
last if $_->[-1] == 5;
}
#print contents of @aoa
foreach my $row (@aoa){
foreach my $ele (@$row){
print "$ele ";
}
print "\n";
}
我的输出是:
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
我希望/期望它是:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
我假设我的问题在于我如何分配$ temp,如果不是这样,请告诉我。任何帮助表示赞赏。
答案 0 :(得分:4)
使用my
创建一个新数组,复制要构建的数组的内容,然后添加到该数组中。
尽可能保持与您的代码尽可能接近
foreach (@aoa) {
last if $_->[-1] == 5;
my @temp = @$_; #copy current array into @temp
push @temp, $i++;
push @aoa, \@temp;
}