Thread Hash enthält einen Wert zuviel
(2 answers)
Opened by panni at 2015-07-22 15:24
Hallo!
Ich habe eine weitere Frage zu Hashs. Ich lese eine Datenbanktabelle aus und speichere die Werte in einem Array. Der Sql-Befehl liefert genau sechs Werte zurück. Code (perl): (dl
)
1 2 3 4 5 6 7 8 ... my $key = "allItems"; while (my($itemNum, $itemTitle) = $dbh->fetchrow_array()) { push(@aItems, { 'itemNum' => $itemNum, 'itemName' => $itemTitle }); } Danach füge ich dieses Array zu einem Hasheintrag zu Code (perl): (dl
)
$item{$key}{'itemList'} = \@aItems; Der Effekt den ich jetzt habe, ist dass ich in dem Array @aItems sechs Werte habe, in $item{$key}{'itemList'} aber sieben Werte, einer davon ist "undef". Ich habe mir mal rudimentär ausgeben lassen, was in @aItems und in $item{$key}{'itemList'} gespeichert ist. Code (perl): (dl
)
1 2 3 $item{$key}{'debugArray'} = join ("|", @auctionItems); while( my @array=each($item{$key}{'itemList'} )) { $item{$key}{'debugHash'} = $item{$key}{'debugHash'} ."|$array[0] -> $array[1]"; $array[0]=undef;$array[1]=undef } } und erhalte dann folgendes Ergebnis Quote Ich verstehe nicht, warum in "$item{$key}{'itemList'}" auf einmal ein Wert mehr enthalten ist bzw. wo der herkommt bzw. wo ich einen Fehler mache. Ganz verrückt wird es (für mich), dass ich das Zuweisen einer Liste von Items zu einem Hashwert noch an anderen Stellen im Projekt auf die gleiche Weise mache, ich dann aber dort nicht diesen zusätzlichen, undefinierten, Wert mit in der Liste habe. Weiß evtl. jemand Rat? Danke! |