Hallo Silvio,
use Data::Dumper; my %itemSet; print "Dump vor exists-Abfrage: " . Dumper(%itemSet) . "\n\n"; if (exists $itemSet{'item'}{'imageSet'}{1}{'large'} ) {print "'large' ist vorhanden\n\n";} print "Dump nach exists-Abfrage: " . Dumper(%itemSet) . "\n\n";
Dump vor exists-Abfrage:
Dump nach exists-Abfrage: $VAR1 = 'item'; $VAR2 = { 'imageSet' => { '1' => {} } };
Was ich nicht verstehe ist, warum %itemSet nach der exists-Abfrage auf einmal gefüllt ist?
Um zu prüfen, ob der letzte Schlüssel large
existiert, werden die davor liegenden Hash of Hashes angelegt.
Und kann ich das verhindern?
Mehrstufig prüfen, d.h. auf den Zwischenebenen schauen, ob diese existieren.
Viele Grüße
Robert