in reply to Automagic Array to Hash Conversion? Pseudo-Hash Explosion

Your problem might be auto-vivification. With defined, you just check if a value of a hash is defined, not if it is existing. (And the value of a hash may be existing but undef without problems).

Better use something like:

if( exists($foo->{$_} and exists($foo->{$_}->{bar} ) { ... }

Best regards,
perl -le "s==*F=e=>y~\*martinF~stronat~=>s~[^\w]~~g=>chop,print"