Perl: Mehrdimensionale Hashs an Unterprogramm übergeben

Xanti

Xanti

Mouse Organist
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
 
Achso, globale Variablen will ich nicht benutzen...
 
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
 
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
 

Ähnliche Themen

Perl: Key im Hash via Referenz setzen

Last mit etc/passwd anzeigen lassen

[Perl] Objekte dynamisch benennen

perl Hash nach Werten sortieren.

rsnapshot und ein Rechteproblem?

Zurück
Oben