如何在数组结构的数组中复制嵌套数组

How to make a copy of a nested array in an array of array structure

我正在尝试制作一个嵌套数组的副本,看来我继续尝试引用。

更具体地说,我正在尝试创建一个数组数组,其中每个子数组都建立在前一个数组的基础上。这是我的尝试:

#!/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  

我want/expect它是:

1
1 2
1 2 3
1 2 3 4 
1 2 3 4 5 

我假设我的问题在于我如何分配 $temp,如果不是这样请告诉我。感谢任何帮助。

使用my创建一个新数组,复制要构建的数组的内容,然后添加到其中。

让它尽可能靠近您的代码

foreach (@aoa) {
  last if $_->[-1] == 5;
  my @temp = @$_;         #copy current array into @temp
  push @temp, $i++;
  push @aoa, \@temp;
}