NAME

Iterator::Flex::Product - An iterator which produces a Cartesian product of iterators

VERSION

version 0.18

METHODS

new

$iterator = Iterator::Flex::Product->new( $iterable1, $iterable2, ..., ?\%pars );
$iterator = Iterator::Flex::Product->new( key1 => $iterable1,
                            key2 => iterable2, ..., ?\%pars );

Returns an iterator which produces a Cartesian product of the input iterables. If the input to iproduct is a list of iterables, $iterator will return an array reference containing an element from each iterable.

If the input is a list of key, iterable pairs, $iterator will return a hash reference.

The iterables are converted into iterators via "to_iterator" in Iterator::Flex::Factory if required.

All of the iterables must support the rewind method.

The optional %pars hash may contain standard signal parameters.

The iterator supports the following capabilities:

current
next
reset
rewind
freeze

This iterator may be frozen only if all of the iterables support the prev or __prev__ method.

INTERNALS

SUPPORT

Bugs

Please report any bugs or feature requests to bug-iterator-flex@rt.cpan.org or through the web interface at: https://rt.cpan.org/Public/Dist/Display.html?Name=Iterator-Flex

Source

Source is available at

https://gitlab.com/djerius/iterator-flex

and may be cloned from

https://gitlab.com/djerius/iterator-flex.git

SEE ALSO

Please see those modules/websites for more information related to this module.

AUTHOR

Diab Jerius <djerius@cpan.org>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2018 by Smithsonian Astrophysical Observatory.

This is free software, licensed under:

The GNU General Public License, Version 3, June 2007