私は次のようなPerlコードを持っています:
# -- start --
my $res;
# run query to fetch IPv6 resources
while( my $row = $org_ip6_res->fetchrow_arrayref )
{
if( $row->[4] =~ /PA/ ) {
$res->{ipv6}{pa}{$row->[2]}++;
} elsif( $row->[4] eq 'PI' ) {
$res->{ipv6}{pi}{$row->[2]}++;
}
}
# -- stop --
クエリ結果を反復処理する前に設定されることはありませ$res
んが、コードは正常に実行されます。
各値の前にprintステートメントを置くと、どちらの場合も空白になりますが、増分が適用された後にprintステートメントが来ると、組織にあるIPv6リソースの数に応じて>=1の値が得られます。
私の質問は、これをPerlの初期化されていないハッシュキーの値が自動的にゼロになることを意味すると解釈しますか?
初心者の質問として出くわした場合は申し訳ありませんが、私はそのような構成に精通していません。つまり$hashref->{foo}->{bar}++
、値がまだ明示的に割り当てられていない場合$hashref->{foo}->{bar}
です。前もって感謝します!