http://qs1969.pair.com?node_id=139244

...because they are too difficult to type with one hand.

icicle, oxidize, panels, soaped, coaxial, dispels,
gospels, spatial, clamps, dispel, elapse, gospel,
pajama, palely, panama, lapels, and social.

YuckFoo

#!/usr/bin/perl use strict; my ($DICT, $MIN) = qw(/usr/dict/words 6); my (%rows, %cols); my ($word, $score); addhash(0, \%rows, \%cols, 'qwertyuiop'); addhash(1, \%rows, \%cols, 'asdfghjkl'); addhash(2, \%rows, \%cols, 'zxcvbnm'); if (!open (IN, $DICT)) { print STDERR "\nError opening file: $DICT\n\n"; exit; } while (chomp ($word = <IN>)) { if (length($word) >= $MIN && $word !~ m{[A-Z]}) { $score = score(\%rows, \%cols, $word); printf (STDOUT "%4.2f $word\n", $score); } } #----------------------------------------------------------- sub score { my ($rows, $cols, $str) = @_; my ($tot, $ch); my ($r, $c, $lr, $lc); for $ch (split('', $str)) { if ($lr eq '') { ($lr, $lc) = ($rows->{$ch}, $cols->{$ch}); } else { ($r, $c) = ($rows->{$ch}, $cols->{$ch}); $tot += abs($lr - $r) + abs($lc - $c); ($lr, $lc) = ($r, $c); } } return ($tot / (length($str) - 1)); } #----------------------------------------------------------- sub addhash { my ($row, $rows, $cols, $str) = @_; my ($i, $ch); for $ch (split('', $str)) { ($rows->{$ch}, $cols->{$ch}) = ($row, $i++); } }