Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Perl - Verschachtelete Hash von Hash....

  1. #1
    Registrierter Benutzer
    Registriert seit
    25.09.2003
    Beiträge
    37

    Thumbs up Perl - Verschachtelete Hash von Hash....

    Hallo Leute,

    um eine Referenz von einer Hashtable 'a' in einer Hashtable 'b' zu speichern, muss ich die Hashtable 'a' ja erst einmal erzeugen.
    Hashtable 'a' hat dann eine Referenz, die in Hashtable 'b' gelegt werden kann.

    Ich muss jedoch für jeden Datensatz eine Hashtable 'a' anlegen und deren Refernz in Hashtable 'b' speichern. Das neue Anlegen macht man ja mit dem Schlüsselwort my.

    Jetzt aber mein Problem: Die neuangelegte Hashtabelle 'a' ist nur innerhalb { } gültig.
    Wie kann man das hier lösen ......

    #Eingangsdaten: Spalten Name, Bezeichnung, Anzahl
    #Beispiel:
    # Harry HH 5
    # Harry DE 0
    # Harry UX 3
    # Sigi UX 0
    # Sigi AH 4
    # Ulli HH 4
    # Ulli DE 2
    # . . .
    # . . .
    #
    #gewünschte Ausgabe der Werte
    # Name HH DE UX AH HH DE
    #
    # Harry 5 0 3 0 0 0
    # Sigi 0 0 0 4 0 0
    # Ulli 4 2 0 0 0 0
    #
    #-------------- Mein Versuch --------------------------------

    #Erstellen äußere Hashtable
    my %outer=();
    while (my($Name,$Dienstbezeichnung,$diensttage)=$query->fetchrow_array){

    #Erstellen innere Hashtable, wenn noch nicht existent und lege Hashwert in äußere Hashtabelle
    if (!exists($outer{$Name})){
    my %innerhash=();
    $outer{$Name}=\%innerhash;
    }

    $innerhash{$Dienstbezeichnung}=$diensttage;
    #Das trifft eben nicht die gewünschte Hashtable ...?????
    }

    #-------------------------------------------------

    Ich hoffe ich habe mein Problem so beschrieben, das man es nachvollziehen kann.
    Vielen Dank für Info

    LG
    Andi
    Geändert von Andi B. (04-02-2010 um 10:43 Uhr)

  2. #2
    Registrierter Benutzer Avatar von jeebee
    Registriert seit
    01.01.2005
    Ort
    Bern || Zürich
    Beiträge
    540
    1) Code-Tags machen das Ganze lesbarer
    2) versuch mal
    Code:
    $outer{$Name}->{$Dienstbezeichnung} = $diensttage;
    my very own 128 bit integer
    C4 D3 B8 A8 9E A0 C6 EC 7D EC A8 15 28 D1 92 58
    more information

  3. #3
    Registrierter Benutzer
    Registriert seit
    25.09.2003
    Beiträge
    37
    Yuhuu!!!!


    Danke!!!!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •