#!/usr/bin/perl use strict; use warnings; use autodie; #Get the filename from the first argument. my ($filename) = @ARGV; #open it to read it. open( my $input_data, "<", $filename ); #set up somewhere to store our count. my %word_count; #cycle through one line at a time. while (<$input_data>) { chomp; #take each line, split it by spaces and #count the number of occurances foreach my $word (split) { $word_count{$word}++; } } #print the results. Sort %word_count into count order. #(Descending) and print. foreach my $word ( sort { $word_count{$b} <=> $word_count{$a} } keys %word_count ) { print "$word = $word_count{$word}\n"; }