in reply to Finding all sets of chars

The number of such strings grows exponentially as you increase the desired length (which can out of hand really fast). To prevent from having to keep all of the strings in memory at once, you can use an iterator to give you just one item at a time. Even though the glob function can be used like an iterator, it still internally keeps all of the items in memory at once, so there is no memory gain by using glob to iterate. Here's a simple iterative solution using NestedLoops from Algorithm::Loops:
use Algorithm::Loops 'NestedLoops'; my @chars = ( 'a' .. 'z', 1 .. 9 ); my $len = 3; NestedLoops( [ (\@chars) x $len ], sub { my $str = join "", @_; ## do something with $str } );

blokhead