Changes for version 0.15 - 2022-07-18

    • resolve RT#141012, always call overload::Method with three arguments. HVDS++
    • sequences did not correctly handle exhaustion => 'throw' or exhaustion => [ return => $sentinel ]
    • some of the non-documented ways of handling input exhaustion didn't work as expected.
    • rework Iterator::Flex::Manual:Authoring
    • iterator adaptors handling of input exhaustion from their input iterators was not properly/fully documented.


Index of Iterator::Flex Manuals
Interfacing with non- Iterator::Flex things.
How to write an iterator
An Abstract overview of Iterators
Other Iterator Models
How to use an Iterator::Flex iterator


Iterators with flexible behaviors
Array Iterator Class
ArrayLike Iterator Class
Iterator object
Cache Iterator Class
Iterator Generators and Adapters
Array Cycle Iterator Class
Create on-the-fly Iterator::Flex classes/objects
Failure classes for Iterator::Flex
Freeze an iterator after every next
Grep Iterator Class
Map Iterator Class
Compartmentalize Iterator::Flex::Method::Maker
An iterator which produces a Cartesian product of iterators
Iterator Methods to add Iterator::Flex Iterator modifiers
Implement current as a closure stored in the registry
Implement current as a method
signal error by throwing
Imported iterator returns a sentinel
signal exhaustion by transitioning to exhausted state and throwing exception
signal exhaustion by returning a sentinel value.
signal exhaustion by setting exhausted flag;
Role to add serialization capability to an Iterator::Flex::Base
Role for closure iterator which closes over self
Construct a next() method for iterators without closed over $self
Implement prev as a closure stored in the registry
Implement prev as a method
Implement reset as a closure stored in the registry
Implement reset as a method
Implement rewind as a closure stored in the registry
Implement rewind as a method
abstract interface role for State
Iterator State is kept in a closure variable
Iterator State is kept in the registry
Role based utilities
wrap imported iterator which returns a sentinel on exhaustion
Construct a next() method for a coderef which expects to be passed an object ref
Role to add throw on exhaustion to an iterator which adapts another iterator
Numeric Sequence Iterator Class
Internal utilities


in lib/Iterator/Flex/