NAME Iterator::Flex - Iterators with flexible behaviors VERSION version 0.24 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: 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 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