########################################################## #! /usr/bin/perl use warnings; use strict; my $word = qr/(?) { my $line = lc $_; while ($line =~ /($word('$word)?)/g){ $count{$1}++; } } printf "%15s %5d\n", $_, $count{$_} for sort keys %count; __DATA__ "Hello World!" "Oh poor Yorick, his world I knew well yes I did" "Words with internal apostrophes. (don't won't, can't shouldn't, you'll, it's, etc.)" "Señor Montóya's resüme isn't ápropos."