Letztes Element eines "Hash of Arrays"?

30/09/2009 - 17:40 von Frank Glück | Report spam
Hallo zusammen,

angenommen, ich habe einen

%figuren_hash = {
adam => [ "mythologie", "mànnlich" ],
eva => [ "mytholgie", "weiblich" ],
haensel => [ "màrchen", "mànnlich" ],
gretel => [ "màrchen", "weiblich" ]
}

Wie greife ich jetzt beispielsweise auf das letzte Element der in
$figuren_hash{gretel} enthaltenen Liste (die übrigens beliebig lang sein
kann) zu?

Ich suche also etwas wie

$figuren_hash{gretel}[$#figuren_hash{gretel}]

... wobei dies offensichtlich nicht so funktioniert.

Zusatzfrage: Angenommen, ich muss die Hash-Elemente in %figuren_hash mit
einer Variablen ansprechen - gibt es auch dafür eine funktionierende
Lösung wie etwa:

$figuren_hash{$variabler_string}[$#figuren_hash{$variabler_string}]

...?

Danke und schöne Grüße,
Frank
 

Lesen sie die antworten

#1 Wolf Behrenhoff
30/09/2009 - 17:56 | Warnen spam
Frank Glück schrieb:
Hallo zusammen,

angenommen, ich habe einen

%figuren_hash = {
adam => [ "mythologie", "mànnlich" ],
eva => [ "mytholgie", "weiblich" ],
haensel => [ "màrchen", "mànnlich" ],
gretel => [ "màrchen", "weiblich" ]
}



Das ist so ein Syntax-Fehler! Entweder $hashref = { ... } oder
%hash = ( ... )!

Wie greife ich jetzt beispielsweise auf das letzte Element der in
$figuren_hash{gretel} enthaltenen Liste (die übrigens beliebig lang sein
kann) zu?



Angenommen, du hast oben (...) statt {...} gemeint, dann:
print $figuren_hash{gretel}[-1];

Negative Indizes zàhlen von hinten.

Zusatzfrage: Angenommen, ich muss die Hash-Elemente in %figuren_hash mit
einer Variablen ansprechen - gibt es auch dafür eine funktionierende
Lösung wie etwa:

$figuren_hash{$variabler_string}[$#figuren_hash{$variabler_string}]



Ja:
$figuren_hash{$variabler_string}[-1]

Wenn du $# benutzen willst (macht es komplizierter):
$figuren_hash{$variabler_string}[$#{$figuren_hash{$variabler_string}}]

Wolf

Ähnliche fragen