Thread Hash by value als Sub-Parameter übergeben (18 answers)
Opened by KurtZ at 2008-02-06 19:55

KurtZ
 2008-02-11 18:13
#105787 #105787
User since
2007-12-13
411 Artikel
BenutzerIn
[default_avatar]
murphy+2008-02-10 14:41:50--
Ist eigentlich irgendwo dokumentiert, dass beim Bestücken eines Hashes aus einem Listenkontext alle Schlüssel-Wert-Paare sequentiell von vorne nach hinten abgearbeitet werden,


Ich habe erstmal gebraucht um deinen Einwand zu verstehen, du befürchtest ein hinterer Key könnte auch von einem vorherliegenden gleichnamigen überschrieben werden.

Ich kenne keine Dokumentation, Spezifikationen sind bei Perl 5 eh zweitrangig zum Status Quo des Interpreters.

Aber ich denke es ist naheliegend davon auszugehen, schließlich müsste die linke Seite in einem ersten Pass erst die Länge der Liste ermitteln. Insbesondere bei Hashes könnte die rechte Liste ja ungradzahlige Länge haben. Andersrum wäre ja unperformant...

ah jetzt ja, im Lamabuch wird "reverse" zum invertieren von hashes beschrieben.
Code: (dl )
%by_name = reverse %by_address;     # Invert the hash

...und gewarnt das dann bei mehrfach vorkommenden Values der letzte gewinnt
(was die Sache in diesem Fall unvorhersagbar macht, weil die Reihenfolge der Keys im rechten Hash nicht definiert ist!)
TMTOWTDYOG (there's more than one way to dig your own grave)

View full thread Hash by value als Sub-Parameter übergeben