PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Perl - Verschachtelete Hash von Hash....



Andi B.
04-02-2010, 10:09
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

jeebee
04-02-2010, 12:16
1) Code-Tags machen das Ganze lesbarer
2) versuch mal
$outer{$Name}->{$Dienstbezeichnung} = $diensttage;

Andi B.
04-02-2010, 12:41
Yuhuu!!!!


Danke!!!!