Angenommen, ich habe einen Hash wie folgt aus:Wie kann man herausfinden, ob ein Perl-Hash multidimensional ist?
$hash_ref = {
'hashes' => {
'h1' => { 'klf' => '1', 'moomooland' => '1' },
'h2' => { 'klf' => '2', 'moomooland' => '2' },
'h3' => { 'klf' => '3', 'moomooland' => '3' }
},
'keys' => {
'k1' => 'key1',
'k2' => 'key2',
'k3' => 'key3'
}
}
Wie konnte ich herausfinden, so einfach wie möglich, dass hashes
enthält 3 weitere Hashes, während keys
enthält drei Schlüssel/Wert-Paare?
ref
wird HASH
für beide zurückgeben, und ich bin mir nicht sicher, ob es möglich ist, vielleicht die Tiefe dieser Hashes herauszufinden.
Thanks :)
Ja, es ist möglich, aber ich frage mich, warum Sie das wissen möchten. Das kann helfen, eine geeignete Vorgehensweise zu finden. z.B. Möchten Sie die tiefste Kette oder die Tiefe aller verschiedenen Zweige zurückgeben? – Zaid
Mögliches Duplikat: [Traversieren eines mehrdimensionalen Hash in Perl] (http://stackoverflow.com/questions/160175/traversing-a-multi-dimensional-hash-in-perl) – Zaid
Ich müsste das so wissen Ich kann verschiedene Aktionen aufrufen, je nachdem, ob ich 3 Hashes oder 3 Schlüssel/Wert-Paare erhalte. Also muss ich nicht unbedingt die genaue Tiefe kennen, wenn ich diese beiden auf andere Weise unterscheiden kann. Ich sehe jetzt deinen Link zu einer anderen Frage, aber ich hoffte, dass dies ohne Rekursion gemacht werden könnte :) – sentinel