这是一些简单的 Perl 来计算一个值在数组中出现的次数。这运行没有任何警告。
use warnings;
use strict;
my @data = qw(1 1 2 3 4 5 5 5 9);
my %histogram;
foreach (@data)
{
$histogram{$_}++;
}
当循环体更改为
$histogram{$_} = $histogram{$_} + 1;
Perl 警告“另外使用未初始化的值”。
引擎盖下发生了什么?为什么将值作为操作数提供给 ++ 运算符并使用 + 运算符未初始化时进行初始化?