PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Perl: Mehrdimensionale Hashs an Unterprogramm übergeben



Xanti
25.09.2004, 20:50
Hallo,

ich habe folgendes Problem: Ich möchte ein mehrdimensionales Hash der Art



$hash{"gix","gax"} = "..."


als eine von mehreren Variablen an ein Unterprogramm (sub) übergeben. Referenzieren wie im eindimensionalen Fall



sub test {
my ($hash, ...) = @_;
...
print "@$hash{\"gix\",\"gax\"}"
}
...
&test(\%hash);


funktioniert leider nicht. Vielleicht hat einer von Euch eine Lösung? :-)

Und wenn wir gerade beim Thema mehrdim. Hashs sind: Gibt es eine Möglichkeit, die Schlüssel ebendieses Hashs auszulesen? key () liefert nur Müll.

Besten Dank, Phorus

Xanti
25.09.2004, 21:25
Achso, globale Variablen will ich nicht benutzen...

ulf
26.09.2004, 15:19
hi Phorus,

also ein normalen hash wuerde ich mit
$hash{$key} = $value;
z.B.
$auto{"audi"} = 3;

initialisieren.

unter einem mehrdiemensionalen hash verstehe ich
einen hash mit mehreren werten pro schluessel also so:
$hash{$key}= $value1, $value2;
z.B.
$auto{"audi"} = 3, 4;

ich verstehe nicht genau was du hiermit mach willst?
$hash{"gix","gax"} = "..."

willst du mehreren schluesseln den gleichen wert zuweisen?

gruss ulf

Xanti
26.09.2004, 16:16
Hallo Ulf,

Du hast recht, $hash{"gix","gax"} ist Quatsch, es sollte $hash{"gix"}{"gax"} heissen. Keine Ahnung, was mich da geritten hat. Danke, dass Du mich auf den Fehler hingewiesen hast.

Gruss, Daniel