use strict; use warnings; my @sites = qw| http://www.foo.com http://www.foo1.com http://www.foo2.com http://www.foo.com http://www.a.com http://www.a.com http://www.a.com http://www.a.com |; my %sites; ++$sites{$_} foreach @sites; my @validsites = sort { $a <=> $b } keys %sites; my @popularsites = sort { $sites{$b} <=> $sites{$a} } keys %sites; splice(@popularsites, 10); # Keep only the 10 most popular. { local $, = "\n"; local $\ = "\n"; print 'Most Popular Sites', '------------------', @popularsites, '', 'All Sites', '---------', @validsites; }