#!/usr/bin/perl
use strict;
use CGI;
my $q = new CGI;
my $letters = $q->param('letters');
my ( @three, @four, @five, @six );
my %letters;
my $found;
if ( !($letters) ) {
print "Content-type: text/html\n\n";
print <
<!--
.style1 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-weight: bold;
}
.style2 {font-family: Verdana, Arial, Helvetica, sans-serif}
.style5 {
font-family: Verdana, Arial, Helvetica, sans-serif;
color: #FF0000;
font-weight: bold;
}
-->
<img src="/word-challenge.jpg" border="0" alt="" />
<span class="style1">Wordbot 1.0 </span>
<span class="style2">Enter letters:</span>
<form id="form1" action="wordbot.pl" method="post">
<label>
<input id="textfield" name="letters" type="text" />
</label>
<label>
<input id="button" name="button" type="submit" value="Submit" />
</label>
</form>
EOF
;
}
else {
$letters = lc $letters; # convert to lowercase
$letters =~ tr/a-z//cd; # strip non-letter characters
foreach ( split( //, $letters ) ) { # store letter counts
$letters{$_}++;
}
open( DICT, "sowpods.txt" );
my ($word);
WORD:
while ( defined( $word = ) ) {
# for each word in list
chomp($word);
$word = lc($word);
next WORD if ( $word =~ /[^$letters]/o ); # check letters used
my %word;
foreach ( split( //, $word ) ) { # check letter counts
$word{$_}++;
next WORD if ( $word{$_} > $letters{$_} );
}
my $len = length($word);
push( @three, $word ) if $len == 3;
push( @four, $word ) if $len == 4;
push( @five, $word ) if $len == 5;
push( @six, $word ) if $len == 6;
}
print "Content-type: text/html\n\n";
print <
<!--
.style2 {font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: bold; }
.style3 {font-family: Verdana, Arial, Helvetica, sans-serif}
-->
<img src="/word-challenge.jpg" border="0" alt="" />
<table border="0" cellspacing="3" cellpadding="3" width="500">
<tbody>
<tr>
<td>
<div class="style3"><strong>Word List:</strong></div></td>
</tr>
</tbody></table>
";
print
"
";
print
"
";
print
"
<table border="0" cellspacing="3" cellpadding="3" width="500">
<tbody>
<tr>
<td width="25%">
<div class="style2">SIX</div></td>
<td width="25%">
<div class="style2">FIVE</div></td>
<td width="25%">
<div class="style2">FOUR</div></td>
<td width="25%">
<div class="style2">THREE</div></td>
</tr>
<tr>
<td width="25%" valign="\"top\"">
<div class="style3">
HEAD
;
foreach (@six) {
print "$_";
}
print "</div></td>
<td width="\"25\%\"" valign="\"top\"">
<div class="\"style3\"">";
foreach (@five) {
print "$_";
}
print "</div></td>
<td width="\"25\%\"" valign="\"top\"">
<div class="\"style3\"">";
foreach (@four) {
print "$_";
}
print "</div></td>
<td width="\"25\%\"" valign="\"top\"">
<div class="\"style3\"">";
foreach (@three) {
print "$_";
}
print <</div></td>
</tr>
</tbody></table>
<span class="style2">Enter letters:</span>
<form id="form1" action="wordbot.pl" method="post">
<label>
<input id="textfield" name="letters" type="text" />
</label>
<label>
<input id="button" name="button" type="submit" value="Submit" />
</label>
</form>
EOHTML
;
}