The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Name

Math::Permute::Lists - Generate all the permutations of zero or more nested lists.

Synopsis

 use Math::Permute::Lists;

 permute {say "@_"}  [1,2],[3,4];

 # 1 2 3 4
 # 1 2 4 3
 # 2 1 3 4
 # 2 1 4 3
 # 3 4 1 2
 # 3 4 2 1
 # 4 3 1 2
 # 4 3 2 1

 permute {say "@_"} 1,[2,[3,4]];

 # 1 2 3 4
 # 1 2 4 3
 # 1 3 4 2
 # 1 4 3 2
 # 2 3 4 1
 # 2 4 3 1
 # 3 4 2 1
 # 4 3 2 1

Description

Generate all the permutations of zero or more nested lists using the standard Perl metaphor.

permute() returns the number of permutations in both scalar and array context.

permute() is 100% Pure Perl.

Export

The permute() function is exported.

Installation

Standard Module::Build process for building and installing modules:

  perl Build.PL
  ./Build
  ./Build test
  ./Build install

Or, if you're on a platform (like DOS or Windows) that doesn't require the "./" notation, you can do this:

  perl Build.PL
  Build
  Build test
  Build install

Author

PhilipRBrenan@appaapps.com

http://www.appaapps.com

Acknowledgements

From a suggestion by Philipp Rumpf.

See Also

Math::Cartesian::Product
Math::Disarrange::List
Math::Permute::List
Math::Subsets::List
Algorithm::Permute
Algorithm::FastPermute

Copyright

Copyright (c) 2009 Philip R Brenan.

This module is free software. It may be used, redistributed and/or modified under the same terms as Perl itself.