Thread Array of Arrays in Schleife erstellen (3 answers)
Opened by trojax at 2009-08-05 15:32

sid burn
 2009-08-05 15:49
#123911 #123911
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
Quote
Nach der Schleife ist das Array @aoa auch mit sovielen Elementen wie Zeilen gefüllt.
Allerdings enthalten alle diese Zeilen den gleichen Inhalt, und zwar den der letzten Zeile die ich verarbeitet habe.
Da ich, wenn ich mir jedes @vorhandene_werte Array einzeln ausgeben lasse die jeweiligen, richtigen Werte der Zeilen erhalte habe ich die vermutung, dass ich zwar jedes Mal das Array anhänge, der Inhalt dessen sich jedoch bis zum Ende der Datei ja noch verändert, und diese Änderungen dann alle Elemente des @aoa betreffen.

Kannst du ein komplettes lauffähiges Schnipsel Posten mit beispieldaten wo das aufrtritt? Nach deinem simplen code oben sollte soetwas nicht passieren. Es scheint mir eher das du in deinem Code wo das passiert eher soetwas hast

Code (perl): (dl )
1
2
3
4
5
6
my @vorhandene_werte;
while ( my $line = <$fh> ) {
    chomp $line;
    @vorhandene_werte = split(/\s+/,$line);
    push (@aoa , \@vorhandene_werte);
}


Damit würdest du dann dem Array immer wieder neue Werte zuordnen und für jede zeile eine arrayreferenz hinzufügen. Und zum schluß haben alle Arrays den gleichen Inhalt weil sie immer auf das gleiche array zeigen.

Daher poste bitte ein vollständig lauffähiges Beispiel wo das auftritt. Mit dem Code den du gepostet hast sollte dies nicht passieren.

Oder hast du etwa "use strict;" nicht an, und nutzt kein "my" oder so ein kram? Das würde ebenfalls zu solch einem ergebniss führen.
Last edited: 2009-08-05 15:51:26 +0200 (CEST)
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de

View full thread Array of Arrays in Schleife erstellen