Thread Wunderbare Selbsterzeugung bei Hashüberprüfung?
(2 answers)
Opened by toby at 2006-08-24 00:19
Hallo Community :)
in einem grösseren Program muss ich testen, ob ein bestimmter Key eines Hash in Hash definiert ist. Es kann vorkommen, dass der Hash in Hash selbst nicht vorhanden ist. Meine Prozedur sieht ähnlich aus: Code: (dl
)
1 #!/usr/bin/perl Solange HASH->{KEY} existiert ist alles OK, if liefert "definiert" und Dumper gibt alles richtig aus. Sobald aber HASH->{KEY} nicht existiert, liefert if zwar "nicht definiert", allerdings wird bei der Überprüfung ein leeres HASH angelegt. Der Dumper sagt: Quote Und das ist ein grosser, in meinem Fall soger ein sehr grosser Mist, weil da auf einmal ein leeres HASH existiert und bringt die weitere Verarbeitung aus dem Tritt... Ich könnte hier zwar im Zweierschritt erst testen, ob HASH existiert und erst dann auf HASH->{KEY} testen. Es wird aber in 99,9% vorkommen, dass HASH->{WAS_ANDERES} schon vorhanden ist dann wäre diese Überprüfung zimlich sinnlos und verschwenderisch und ich müsste immer zwei Schritte machen um eine Stufe zu erreichen. Das ist bischen doof und ich kann mir nicht vorstellen, dass Perl zu sowas zwingen würde, oder muss ich mich hier beugen? Deswegen meine Frage: Warum kommt es zu dieser Selbsterzeugung und wie kann ich es verhindern, wenn ich unbedingt die drunterlegende Struktur eines Hash im Hash überprüfen muss? Wer hat eine Antwort auf diese Fragen? Danke Tobias |