#!/usr/bin/perl
my $input = shift( @ARGV );
my $output = shift( @ARGV );
my %words;
unless ( $output ) {
$output = "result.txt";
}
print "The word count will be stored in $output\n";
open INPUT, "$input" or die "Cannot open $input for read: $!";
open OUT, ">$output" or die "Cannot open $output for write: $!";
$count = 0;
@testArray = ();
while ( < INPUT> ) {
@wordArray = split / /;
foreach ( @wordArray ) {
if ( /([a-zA-Z]+)/ ) {
$words{$1}++;
++$count;
}
}
@wordArray = ();
}
foreach $word ( reverse sort by_occurences keys %words ) {
print OUT "* $word occurs $words{$word} time(s) in $input\n";
}
print OUT "\n-> $input contains ", scalar keys %words, " unique words and $count",
" words at all!";
close OUT;
sub by_occurences {
$words{$a} <=> $words{$b};
}