Sven Rautenberg: Code des Wahnsinns *g*

Beitrag lesen

Moin!

Das ganze geht mit dem Befehl "map" recht gut,
aber mit "map" stehe ich auf Kriegsfuß,
und will ihn auch daher nicht verwenden.

Ich hab mir dessen Beschreibung in Perldoc angesehen und glaube nicht, dass du ihn hier verwenden willst. Ich würde es nicht wollen.

Und dieses Code hier nenne ich "Code des Wahnsinns"
weil er nicht nur chaotisch ist,
sondern nichtmal funktioniert (grummel)

Dein Ansatz ist auch nicht sonderlich ideal.

Ich fasse zusammen: Du hast eine Liste von Elementen, die deine Select-Liste bilden. Du hast weiterhin eine Liste von Elementen, die als Bestandteil dieser Liste ausgewählt wurden - also eine echte Teilmenge davon.

Du willst jetzt basierend auf der Information, ob ein Element der Gesamtliste auch Element der Teilmenge ist, zwei verschiedene HTML-Codes zur Wiedergabe der Liste ausgeben.

Mein Ansatz: Statt ständig in der Teilmenge nachzukramen, ob das aktuelle Element der Gesamtliste enthalten ist, solltest du dir lieber zwei Schleifen machen, die jeweils beide Listen genau EINMAL durchlaufen und am Ende die Information, ob ein Element Bestandteil der Teilmenge war oder nicht, als Wert in einer Variablen ablegt.

Strategie: Lege die Gesamtliste als Hash ab. Dann kannst du zu jedem Schlüssel (dieser ist das Element, was in der Liste erscheint) noch einen Extrawert einfügen, nämlich, ob das Element in der Teilmenge enthalten ist oder nicht.

Also einmal eine Schleife durchführen, um aus @array ein %hash zu machen, wobei gilt: Jedes Element $array wird zu einem Element $hash[$array] mit Initialwert 0.

Dann wird einmal die Schleife für die Teilmenge durchlaufen. Wieder das gleiche Spiel: @teilmenge wird in %hash eingefügt, diesmal gilt= $hash[$teilmenge]=1.

Mit dieser Information kannst du dann wahlweise direkt den Hash anzapfen und dessen Keys als Ausgabeinformation nehmen (sinnvollerwiese sortiert nach Alphabet, und nicht "zufällig", wie bei Hashes üblich), oder du kannst zumindest in _einer_ Schleife das gesamte @array ausgeben und den Status "ist in Teilmenge" währenddessen aus dem Hash abfragen.

Wenn wer ne geniale idee hat wie man das lösen kann,
aber bitteschön ohne "map" waere es toll.

Ist ohne Map - aber auch sonst ohne Code. In Perl hab ich zu lange nichts mehr geschrieben.

- Sven Rautenberg

--
"Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
(fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)