in reply to Re^3: using hash to find frequency count
in thread using hash to find frequency count

could you explain a little what the match is doing to parse the lines?

It says: Match a "word", defined as a sequence of one or more letters, hyphens and apostrophes ([...]+). When you find that, return it (()). Repeat (/g). That definition of a word is rather primitve, and may need to be tweaked.

use strict; my $maxcount; my $find; my $file; my %hash; my $count; while (<>) { while (/([a-zA-Z'\-]+)/g) { my $word = $1; $count = ++$hash{lc $word}; if ($count > $maxcount) { $find = $word; $maxcount = $count; } } } my $numwords = keys %hash; print "distinct words: $numwords\n"; print "frequency of most common word: $maxcount\n"; print "common word: $find"; __END__ output of perl script.pl script.pl ================================== distinct words: 25 frequency of most common word: 7 common word: my