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

NAME

Set::Product - generates the cartesian product of a set of lists

SYNOPSIS

    use Set::Product qw(product);

    product { say "@_" } [1..10], ['A'..'E'], ['u'..'z'];

DESCRIPTION

The Set::Product module generates the cartesian product of a set of lists.

FUNCTIONS

product

    product { BLOCK } \@array1, \@array2, ...

Evaluates BLOCK and sets @_ to each tuple in the cartesian product for the list of array references.

NOTES

If Set::Product::XS is installed, this module will automatically use it. You can prevent that and stick with the pure Perl version by setting the SET_PRODUCT_PP or PURE_PERL environment varible before using this module.

PERFORMANCE

This distribution contains a benchmarking script which compares several modules available on CPAN. These are the results on a MacBook 2.6GHz Core i5 (64-bit) with Perl 5.22.0:

    Set::CrossProduct          45.06+-0.54/s
    List::Gen                  61.94+-0.22/s
    Algorithm::Loops           70.25+-0.55/s
    Set::Scalar                  96.5+-1.7/s
    Math::Cartesian::Product      212.5+-2/s
    Set::Product::PP          283.52+-0.34/s
    Set::Product::XS         1003.05+-0.21/s

SEE ALSO

https://en.wikipedia.org/wiki/Cartesian_product

Set::Product::XS

Algorithm::Loops

List::Gen

Math::Cartesian::Product

Set::CrossProduct

Set::Scalar

REQUESTS AND BUGS

Please report any bugs or feature requests to http://rt.cpan.org/Public/Bug/Report.html?Queue=Set-Product. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc Set::Product

You can also look for information at:

COPYRIGHT AND LICENSE

Copyright (C) 2015 gray <gray at cpan.org>, all rights reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR

gray, <gray at cpan.org>