sub offby { my($dist,$word,@possibles)=@_; my($re)=sprintf( q|^%s:%s$|, join(q|.?|,map{q|(\w*)|}(0..$dist)), join(q|.?|,map{"\\".($_+1)}(0..$dist)) ); my(@suggestions); #print "user $word regexp $re\n"; foreach(@possibles) { my($str)="$word:$_"; if($str=~/$re/) { push(@suggestions,$_); } } return(@suggestions) }