Thread HASH setzen mit push?
(6 answers)
Opened by toby at 2006-09-06 01:38
Das dient eher zur Vereinfachung. ;)
Solche Sachen sind für komplexe Datenstrukturen gut. Stell dir vor du hast mehrere Kunden. Jeder Kunde ist über eine Kundenid eindeutig identifizierbar. Weiterhin besitzt jeder Kunde mehrere Daten. Name, Vorname, Adresse ... Diese möchtest du nun alle Speichern, und einfach wieder auf diese Daten zugreifen können. Ein hash kann immer nur einen String einen einzigen Skalar zuweisen. Du könntest also auf die Idee kommen folgendes zu tun: u.s.w. Vergeudet bei einer Menge von Daten viel Speicher, und sollte wohl auch nicht die schnellste Methode sein. Mit einer Hashreferenz sieht es besser aus. Den da hast du einfach einmalig deine Kundenid, und der Wert ist ein hash der einfach alle Deine Kundendaten enthält. Code: (dl
)
1 $kunde{0001} = { Das lässt deine Daten natürlicher erscheinen. Auch ist es einfacher solche Daten im Programmcode zu nutzen. Zum anderen lassen sich abhängigkeiten besser darstellen. Stell dir vor du fügst ein Attribut hinzu das "Geschwister" heißt. Der Wert soll ein Array sein, dass die geschwisternamen enthalten. Code: (dl
)
1 $kunde{0001} = { Spätestens jetzt würde es verdammt schwer sein dies noch mit normalen Hashes abzubilden. Auser du fängst auf einmal an alles in einem String abzulegen mit Delimitern, fängst an mit "split" u.s.w. herum zu hantieren. Fehler wird man dabei wahrscheinlich früher oder später machen. Leicht zu warten wird es nicht mehr, dein Code wird komplex. Zum anderen wird es schwer wenn du nochmals weitere Ebenen Tiefer gehst. Quote Würde auch gehen. Jedenfalls ohne das Anführungszeichen vor dem $hash... Das ganze wird deswegen ein Array weil er um Code: (dl
)
$hash{"key"} Code: (dl
)
@{ ... } Bei der Methode solltest du Wissen das du normale Array/Variablen/Hashes auch so schreiben kannst. Code: (dl
)
@{hallo} Code: (dl
)
@{ $hash{"key"} } <!--EDIT|sid burn|1157495804--> Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
|