my %w; while (my $line = <>) { my $key = (split /:|\n/,$line)[-1]; ++$w{$key}; } for my $key (sort { $w{$a} <=> $w{$b} } keys %w) { say "$key: $w{$key}" }