Hash - Schlüssel ausgeben

06/04/2012 - 20:44 von Peter Mayr | Report spam
Hallo,

wie kann ich den Schlüssel eines einzelnen Hashes ausgeben?

Beispiel:
if (exists $self->{$key}) {
print "$key" . " " . "$self->{$key}" . "";
}

Das klappt leider nicht wirklich!

Danke!
 

Lesen sie die antworten

#1 Peter J. Holzer
07/04/2012 - 11:21 | Warnen spam
On 2012-04-06 18:44, Peter Mayr wrote:
wie kann ich den Schlüssel eines einzelnen Hashes ausgeben?



Was meinst Du mit "*dem* Schlüssel eines einzelnen Hashs"? Ein Hash ist
eine Sammlung von Schlüssel-Wert-Paaren und hat daher per definitionem
nicht einen Schlüssel, sondern eine beliebige Anzahl davon. (Und warum
die Betonung "einzelnes Hash"? Wüsstest Du denn, wie Du es bei mehreren
Hashes machst?)


Beispiel:
if (exists $self->{$key}) {
print "$key" . " " . "$self->{$key}" . "";
}



Das schaut nach, ob der (bekannte) Schlüssel $key im Hash %$self
existiert und gibt ihn und den zugehörigen Wert aus, wenn das der Fall
ist.

Meinst Du vielleicht: Wenn ich ein Hash habe, von dem ich weiß,
dass es genau ein Element enthàlt, wie finde ich den Schlüssel dieses
Elements?

Das ist einfach: Die Liste der Schlüssel eines Hashs bekommst Du mit
»keys«. Wenn die Liste genau ein Element hat, kannst Du sie im
List-Kontext(!) einer Variable zuweisen:

my ($key) = keys %hash;

(Herauszufinden, was passiert, wenn man keys im skalaren Kontext
verwendet, sei Dir als Übungsaufgabe überlassen)

Oder meinst Du, dass Du den Wert kennst, und den zugehören Schlüssel
suchst? Diese Frage ist in der FAQ beantwortet.

hp


_ | Peter J. Holzer | Deprecating human carelessness and
|_|_) | Sysadmin WSR | ignorance has no successful track record.
| | | |
__/ | http://www.hjp.at/ | -- Bill Code on

Ähnliche fragen