Beitrag von hempelr (1976 Beiträge) am Mittwoch, 12.Juni.2002, 20:18.
@CB - nochmal zu der "Hash"-Party
Hallo, Christoph,
hab nun meine Bücher (sind ehrlich gesagt nicht allzuviele) gewälzt, aber zu den interessanten Construkten von Michas Problem nicht alles Begriffen:
"$namen{$Kategorie}.="$Name#";"
ist mir schon klar, es wird an den Schlüssel des Hash "%namen" mit dem Namen "$Kategorie" immer der Inhalt der Var $"Name" angehängt und ein # als Trennzeichen angefügt.
Das # muß aber irgendwie magisch sein, andere alphanumerische Zeichen gehen net, da kommt dann son schöner Fehler - was hat es mit dem # ohne Verkettungsoperator auf sich?
Und wie hängt das mit dem shift zusammen, warum muß die Liste "@links" deamit geleert werden, die Liste "@namen" aber nicht? - bin noch nicht so richtig dahintergestiegen.
Ist aber wirklich eine tolle Variante, die Hash-Listen-Konstruktion - die Laufzeiten sind frappierend schnell gegenüber einem get-get_next in nem foreach wie ich es bisher hatte (gut, nicht gemessen, nur subjektiv empfunden).
Gruß
Ruben
Beitrag von Christoph Bergmann (8110 Beiträge) am Donnerstag, 13.Juni.2002, 02:45.
Re: @CB - nochmal zu der "Hash"-Party
Ja, also...
Nein, # is nichts besonderes, das Problem bei anderen _nicht_-alphanumerischen Zeichen (weil "alphanumerisch" bezeichnet man eigentlich Buchstaben & Zahlen -und vielleicht noch den Unterstrich, da bin ich mir nich sicher- und die wären als Trenner natürlich nich sinnvoll ;-) ) ist dann beim "split /#/..." - das /#/ ist eine regular expression und da haben diverse Zeichen eine besondere Bedeutung (| . - usw.) und die müsstest Du dann escapen, also z.B. bei Verwendung der Pipe |: "split /\|/..." - dann geht das auch als Trenner... ;-)
wg. shift: @namen wird im "foreach $n (@namen)..." durchwandert, also $n bekommt der Reihe nach die Werte von @namen, deshalb brauchts da kein shift - wir müssen aber @links auch durchwandern, das machen wir eben mit dem $l=shift @links. Beide Listen haben zwingend dieselbe Länge, das wissen wir von oben ;-)
Laufzeit: Es ist immer schneller den Kram im Speicher (=mit Variablen) zusammenzubauen, als es mehrmals aus der DB zu holen... ;-)
Beitrag von hempelr (1976 Beiträge) am Donnerstag, 13.Juni.2002, 06:37.
Re: @CB - nochmal zu der "Hash"-Party
Danke - hat zum Verständnis geholfen, habs glaub ich insgesamt geschnitten....
Na dann - bis zum nächsten Mal
Ruben