Я думаю, что этот код должен ответить на ваш вопрос:
use strict;
use warnings;
my @keys = qw/one two three two/;
my %hash;
for my $key (@keys)
{
$hash{$key}++;
}
for my $key (keys %hash)
{
print "$key: ", $hash{$key}, "\n";
}
Выход:
three: 1
one: 1
two: 2
Итерация может быть упрощена до:
$hash{$_}++ for (@keys);
(См. $_
в perlvar .) И вы даже можете написать что-то вроде этого:
$hash{$_}++ or print "Found new value: $_.\n" for (@keys);
Который сообщает о каждом ключе в первый раз, когда он найден.