http://www.perlmonks.org?node_id=1217092


in reply to Re^2: list of four digit lock combinations without repeated digits
in thread list of four digit lock combinations without repeated digits

Am I doing something stupid with the module, or perl?
  1. This: for(@$c){ $x .= $_ } is a really slow way to build a string from an array.
  2. Package variables are slower than lexicals.
  3. Postfix loops generally run more quickly than those with scoped bodies.

Try this and see how it compares on your system:

perl -MAlgorithm::Combinatorics=:all -wle'my $i=variations_with_repeti +tion(["a".."z"],$ARGV[0]); my @x; push @x, qq[@$_] while $_=$i->next; + print scalar @x' 4

In general, those algorithms that require more selection than variations_with_repetition() -- almost any of the other algorithms -- is where A;:C shines over a pure perl implementation.


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority". The enemy of (IT) success is complexity.
In the absence of evidence, opinion is indistinguishable from prejudice. Suck that fhit