Ich versuche, eine Kopie eines verschachtelten Array zu erstellen, und es scheint, dass ich weiterhin einen Verweis mit meinen Versuchen machen.So erstellen Sie eine Kopie eines verschachtelten Array in einem Array Array-Struktur
Um genauer zu sein Ich versuche, ein Array von Arrays zu haben, wobei jedes Sub-Array auf dem vorherigen Array aufbaut. Hier ist mein Versuch:
#!/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";
}
Meine Ausgabe ist:
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
Und ich will/erwarten, dass es sein:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
ich meine Probleme gehe davon liegt bei, wie ich bin Zuweisen von $ temp, lassen Sie mich bitte wissen, wenn dies nicht der Fall ist. Jede Hilfe wird geschätzt.
http://stackoverflow.com/questions/388187/whats-the-best-way-to-make-a-deep-copy-of -a-data-structure-in-perl –
Im Allgemeinen können Sie Storles "dclone" verwenden. Die Lösung von zdim ist in diesem Fall besser geeignet (da Sie nur eine einfache seichte Kopie wünschen). – ikegami