Over the weekend I participated in a puzzle hunt, and one of the tools we kept on using was an anagram solver. Since I already had a nice large wordlist saved away, I figured I could whip up a script to do this. Unfortunately my regex skills were not quite up to the task, so I only ended up with a partial solution. I briefly asked on the CB what I could do, but was told it was impossible to do with a regex. I came so close though, that I figure there's gotta be a way to do this.
Here's what I was able to come up with. It'll correctly find anagrams, but it will also come up with a lot of false positives. It'll match any words of the right length, and with the right letters, but the number of letters won't be right. For example, it'll incorrectly match abcde to aaaaa.
open (INFILE, '<wordlist');
my $word = lc($ARGV[0]);
my $size = length($word);
while ($foo = <INFILE>)
{
if (lc($foo) =~ /^[$word]{$size}$/o)
{
print "Match: " . $foo . "\n";
}
}
Anyone got a simple and correct solution?
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.