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
In reply to Re^4: using hash to find frequency count
by ikegami
in thread using hash to find frequency count
by jjohhn
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |