$counts{$user}{$program}++;
увеличивает значение, хранящееся в ключе $program
во вложенном хэше, которое сохраняется (по ссылке) как значение $counts{$user}
.
Когда Perl видит выражение $counts{$user}{$program}
, оно будетсоздайте (вложенный) хеш, хранящийся в $counts{$user}
, если он еще не существует.Это называется «автовивификация».Perl также создаст ключ $program
в этом (вложенном) хэше, если он еще не существует, и установит его значение undef.
Если значение в $counts{$user}{$program}
еще не определено при вызове ++
на нем Perl предположит, что вы хотите число в этом слоте и инициализируете его с 0.