in reply to possible combinations in sequence
And for completeness, the glob solution, which spends more code fixing up the output than actually generating the results:
and is horribly slow as well.sub qm { my ($glob) = @_; my @rv; $glob =~ s/(\w+)/{$1,}/g; for my $combo (glob($glob)) { $combo =~ s/^:+//; next unless length($combo); push @rv, join ':', split /:+/, $combo; } return @rv; }
BTW, it's interesting to note the change in benchmark results when the input is a long list of null strings:
$source = ':'x20;
-QM
--
Quantum Mechanics: The dreams stuff is made of
In Section
Cool Uses for Perl