use strict; use warnings; my %words; while(chomp(my $line = <>)) { ++$words{(split/:/, $line)[-1]}; } for (sort {$words{$a} <=> $words{$b}} keys %words) { say "$_: $words{$_}"; }