Würde gerne mittels
fetchrow_arrayref die Datensätze als Referenzen in ein Array schreiben.
Das entsprechende Code Fragment:
my @res;
my $row;
while ($row = $query->fetchrow_arrayref){
print "$row->[0] : $row->[1] : $row->[2]";
push @res, $row;
}
Die Ausgabe:
1 : LANGUAGE : de_DE
2 : LANGUAGE : en_US
Sieht eigentlich ganz gut aus. Lasse ich mir allerdings den Listen Inhalt anzeigen, kommt dieses:
my @res;
my $row;
while ($row = $query->fetchrow_arrayref){
print "$row->[0] : $row->[1] : $row->[2]";
push @res, $row;
}
print "---------------------------------------";
foreach $row (@res) {
print "$row->[0] : $row->[1] : $row->[2]";
}
1 : LANGUAGE : de_DE
2 : LANGUAGE : en_US
---------------------------------------
2 : LANGUAGE : en_US : ARRAY(0x1417df0)
2 : LANGUAGE : en_US : ARRAY(0x1417df0)
Auch wenn in der While Schleife mit jedem Durchlauf der nächste Datensatz eingelesen und auch korrekt ausgegeben wird, scheint jedesmal dieselbe Referenz übergeben zu werden.
Wo liegt der Fehler?
Last edited: 2014-10-16 16:42:04 +0200 (CEST)