Я пытаюсь сделать копию вложенного массива, и кажется, что я продолжаю делать ссылку с моими попытками.Как сделать копию вложенного массива в массиве структуры массива
Чтобы быть более конкретным, я пытаюсь иметь массив массивов, в котором каждый вспомогательный массив основывается на предыдущем массиве. Вот моя попытка:
#!/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, пожалуйста, дайте мне знать, если это не так. Любая помощь приветствуется.
http://stackoverflow.com/questions/388187/whats-the-best-way-to-make-a-deep-copy-of -a-data-structure-in-perl –
Вообще говоря, вы можете использовать 'dclone' Storable. Решение zdim более подходит в этом случае (поскольку вам просто нужна простая мелкая копия). – ikegami