Robert B.: Probleme bei exists-Abfrage in einem Hash

Beitrag lesen

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