次のような Perl スクリプトがあるとします。
my $hash = {};
$hash->{'a'} = {aa => 'b'};
$hash->{'b'} = undef;
for (qw(a b c)) {
if(defined $hash->{$_}->{aa})
{
say "defined $_";
}
else
{
say "undef $_";
}
}
print Dumper $hash;
しかし、私の出力は「c」を自動作成しますが、これは望ましくありません。
defined a
undef b
undef c
$VAR1 = {
'c' => {},
'a' => {
'aa' => 'b'
},
'b' => {}
};
また、私のディストリビューションでは、自動有効化を無効にすることはできません。各レベルをチェックするサブルーチンを作成する方法はありますか?