NAME

Iterator::Flex - Iterators with flexible behaviors

VERSION

version 0.18

SYNOPSIS

DESCRIPTION

Note! Iterator::Flex is alpha quality software.

What is It?

Iterator::Flex provides iterators that can:

  • rewind to the beginning, keeping track of state (e.g. cycles which always know the previous value).

  • reset to the initial state

  • serialize, so that you can restart from where you left off,

  • signal exhaustion by returning a sentinel value (e.g. undef) or throwing an exception, and provide a test for exhaustion via the is_exhausted method.

  • wrap existing iterators so that they have the same exhaustion interface as your own iterators

  • provide history via prev and current methods.

These are optional things behaviors that an iterator can support. Not all iterators need the bells and whistles, but sometimes they are very handy.

Where are the iterators?

See Iterator::Flex::Common for a set of common iterators. These are pre-made for you. See Iterator::Flex::Manual::Using for how to use them.

I need to write my own.

See Iterator::Flex::Manual::Authoring for how to write your own flexible iterators.

See Iterator::Flex::Manual::Internals for how everything links together.

Show me the Manual

Iterator::Flex::Manual

What doesn't work? What should frighten me away?

Iterator::Flex::Manual::Caveats

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

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