Struppi: mysteriöses warning, warum?

Beitrag lesen

next unless defined $Obj_Data->{$key};

jo, funzt. ich war bisher immer der überzeugung, daß ein hash keine undefinierten werte hat, falls der schlüssel existiert... aber man lernt immer dazu.

Nein und noch schlimmer -> autovivikation.

So wie du es bisher gemacht hast erzeugst du automatisch neue Schlüssel was u.U. andere Probleme hervorruft.

Es gibt 3. Möglichkeiten:

if $hash{key} -> prüft aud 0, '' und undef erzeugt einen neuen Schlüssel wenn dieser nicht existiert

if defined $hash{key} prüft ob der Wert ungleich undef ist (d.h. 0 und '' ist wahr nur undef ist unwahr), erzeugt keinen Schlüssel

if exist $hash{key} prüft ob der Schlüssel existiert, erzeugt keinen Schlüssel

Struppi.