我有类似于以下的 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
在迭代查询结果之前从未设置过任何一点,但代码运行得很好。
当我在每个值之前放置打印语句时,在这两种情况下我都会得到空白,但如果打印语句是在应用增量之后出现的,我会得到 >= 1 的值,具体取决于组织拥有多少 IPv6 资源。
我的问题是,我是否认为这意味着 Perl 中未初始化的哈希键的值自动为零?
抱歉,如果它是一个新手问题,但我只是不熟悉这样的构造,即$hashref->{foo}->{bar}++
尚未明确分配值的地方$hashref->{foo}->{bar}
。提前致谢!