in reply to Is there a better way for finding anagrams?

Well, you can improve your regex to /^[rgtnaie]{9}$/. If you wanted to, you could also do something like:

my $charclass = "aeginrt"; my $num = 9; if (/^[$charclass]{$num}$/) { # rest of code here
That way, you can easily change what it is you're working with. Of course, that doesn't help you with determining if it has the right amount of the right letters. So, you could do something like:

my %num_letters = ( a => 1, e => 2, g => 1, i => 1, n => 1, r => 1, t => 2, ); my $charclass = join "", keys %num_letters; my $num_chars = 0; $num_chars += $num_letters{$_} foreach keys %num_letters; open DICT, "<linux.words"; WORD: while (my $word = <DICT>) { my %letters = %num_letters; chomp $word; next WORD unless $word =~ /^[$char_class]{$num_chars}$/; while (my $letter = chop($word)) { $letters{$letter}--; } foreach my $letter (keys %letters) { next WORD if ($letters{$letter} != 0); } print "Found $word\n"; } close DICT;

------
/me wants to be the brightest bulb in the chandelier!