my %countries; while (){ my @entries = split m/,/, $_; $countries{$entries[1]}++; } for (reverse sort { $countries{$a} <=> $countries{$b} } keys %countries){ print "$_\t\$countries{$_}\n"; }