in reply to Cryptogram Solver

sub pattern{ my $slot = 'a'; my %slots = (); my $pattern = ""; for( split//, $_[0] ){ $pattern .= $slots{$_} ||= $slot++; } $pattern; } sub match_crypto { my $pattern = pattern($_[0]); my $len = length $pattern; my @matches = grep{length == $len && pattern($_) eq $pattern} @dict; }