perl:计算数组中的唯一元素

sea*_*man 5 arrays perl counting

我有一个带有名字的简单数组,我希望能够轻松打印出每个名字出现的次数.

我已经尝试制作一大堆for循环的diff语句,然后先创建另一个具有唯一值的数组,然后尝试计算orinal数组中的值并将它们存储在第3个数组中.这似乎过于复杂,我想看看是否有更简单的方法来做到这一点.

too*_*lic 14

使用哈希计算每个名称出现的次数:

use warnings;
use strict;
use Data::Dumper;
$Data::Dumper::Sortkeys=1;

my @names = qw(bob mike joe bob);
my %counts;
$counts{$_}++ for @names;
print Dumper(\%counts);

__END__

$VAR1 = {
          'bob' => 2,
          'joe' => 1,
          'mike' => 1
        };
Run Code Online (Sandbox Code Playgroud)