1. Opened a words file outside the subroutine
2. Passed in letters as array not array ref or string (method wasn't specified above)
3. Case sensitive... I don't match 'Sunday' because I wasn't passed a capital S.
4. Returns a large set of matching words, w/o looking for the longest ones..... that wasn't the "interesting" part of the course for me, so I punted. ;-)
So, here's my first second fourth attempt at 64 chars:
Historical Incantations:my @letters = qw(d u n s c a e y t); open(D,"/usr/dict/words") or die $!; my @words = f(@letters); print "$_\n" for @words; sub f { # 1 2 3 4 5 6 #234567890123456789012345678901234567890123456789012345678901234 $;=join'?',sort@_,$;;grep{chop;(join'',sort split//)=~/^$;$/}<D> } __END__ =head1 SAMPLE OUTPUT ace aces acne act acted acute ad ads an and [SNIP] uneasy unsteady [SNIP]
# 1 2 3 4 5 6 7 #234567890123456789012345678901234567890123456789012345678901234567890 +123456 $,=join'?',sort(@_),'';grep{chop;$;=join'',(sort(split//,$_));$;=~/^$, +$/}<D> $,=join'?',sort(@_),'';grep{chop;(join'',(sort(split//,$_)))=~/^$,$/}< +D> $,=join'?',sort(@_),'';grep{chop;(join'',sort split//)=~/^$,$/}<D> $;=join'?',sort@_,$;;grep{chop;(join'',sort split//)=~/^$;$/}<D> # with japhy's help... $;=join'?',sort@_;grep{chop;(join'',sort split//)=~/^$;?$/}<D> @_=sort@_;$"='?';grep{chop;(join'',sort split//)=~/^@_?$/}<D> # with dragonchild's help, and a 'perl -l' trick: @_=sort@_;$"='?';grep{(join'',sort split//)=~/^$\@_?$/}<D> # stealing a bit from gbarr @_=sort@_;$"='?';grep{(join'',sort/./g)=~/^@_?$/}<D>
-Blake
In reply to Re: "Countdown" (golf)
by blakem
in thread "Countdown" (golf)
by stuffy
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |