The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.15 - 2022-07-18

  • BUG FIX
    • 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.
  • DOCUMENTATION
    • rework Iterator::Flex::Manual:Authoring
    • iterator adaptors handling of input exhaustion from their input iterators was not properly/fully documented.

Documentation

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

Modules

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

Provides

in lib/Iterator/Flex/Method.pm