配列に値が出現する回数を数える簡単な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は、「初期化されていない値を追加で使用する」と警告します。
内部で何が起こっているのですか?++演算子にオペランドとして提供され、+演算子で初期化されていない場合、値が初期化されるのはなぜですか?