Gustl: Array-Referenzen

Beitrag lesen

Guten Morgen. Ein neuer Tag :)

Es war ja auch nur ein Beispiel, weshalb du dir deine Referenz mal mit Data::Dumper ausgeben lassen solltest, um die Struktur zu erkennen. Danach entscheidet sich nämlich, wie du dereferenzieren musst. Wenn du dir den Code von den 'Drei Fragezeichen' mal ansiehst, wirst du erkennen, dass da eine Referenz auf ein mehrdimensionales Array erzeugt wird, das du wie von mir beschrieben bearbeiten kannst.

Ja, dass es eine Referenz auf ein mehrdimensionales Array ist weiss ich. Ich nannte es eine Referenz auf die Referenzen (im Array).

Um es zu verstehen hab ich $ref stückweise zerlegt und mir die einzelnen Ergebnisse erst mal ausgeben lassen.

Also so: (Obs klug ist sei mal dahingestellt)

$ref ausgegeben: (Array ...)

@liste (aus @$ref) in einer schleife ausgegeben: (Array ...) ... (Array ...) ... (Array ...) ... usw.

Die Elemente von @liste dereferenziert (@$elemente) in einer Schleife ausgegeben: lesbare Daten, also die eingelesenen Kennzeichen.

--------------

Zur Weiterverarbeitung benötigte ich akz1 und akz2 in je einem Listen-Datensatz: in $element[x] also: "akz1;akz2" usw weil ich anders regieren muss wenn akz1 und akz2 gleiche werte enthalten.

Ich hab also @$elemente in einen string ge-join-t und wieder in eine neue Liste ge-push-t. Jetzt hatte ich die Daten so wie ich sie haben wollte. Diese Liste hab ich widerum zerlegt und die einzelnen Werte bei gleichheit einmal und bei ungleichheit beide je einmal -wieder in eine neue liste ge-push-t.

Mit der Anweisung my %saw; grep !$saw{( split/;/,$_)[0]}++ , @inhalt; entferne ich nun doppelte -> wert Vorkommen und in hash ->name steht nun die anzahl der Vorkommen.

Den Hash widerum lese ich erneut paarweise in eine @liste ein, die ich vor der Ausgabe entweder nach Anzahl Vorkommen oder nach Alphabet ordnen lasse.

Aus der geordneten Liste erstelle ich eine Optionlist.

Dann hab ich mir die ganze puscherei, joinerei und schleiferei angeschaut und mir gedacht, das sollte doch wohl einfacher auch gehen als über 20 Ecken.

Sinn der Ausgabe ~: In der Datenbank befinden sich x Datensätze mit den KFZ-Kennzeichen ABC, x mit DEF usw., die in beiden Rubriken akz1 und akz2 vorkommen. Wenn in der Rubrik akz1 und akz2 allerdings das gleiche Kennzeichen steht, der Datensatz also in nur einer Rubrik gelistet ist, wurde der Datensatz auch nur ein mal gezählt.

Lieber User nun wähle aus welche Kennzeichen-Rubrik Du Dir anschauen willst. Wähle aus ob die Auswahlliste A-Z geordnet werden soll oder nach der Anzahl der Vorkommen 9-0.

----------------

Es läuft: Aber die ganzen Umwege bereiten sogar mir Schmerzen.

Gruss Gustl