Algorithm::Loops - Looping constructs:
    NestedLoops, MapCar*, Filter, and NextPermute*

Algorithm::Loops provides several functions for doing different types of
looping constructs:

Filter

    Similar to C<map> but designed for use with s/// and other reflexive
    operations.  Returns a modified copy of a list.

MapCar, MapCarU, MapCarE, and MapCarMin

    All similar to C<map> but loop over multiple lists at the same time.

NextPermute and NextPermuteNum

    Efficiently find all (unique) permutations of a list, even if it
    contains duplicate values.

NestedLoops

    Simulate C<foreach> loops nested arbitrarily deep.