table of contents
        
      
      
    | MooseX::Iterator(3) | User Contributed Perl Documentation | MooseX::Iterator(3) | 
NAME¶
MooseX::Iterator - Iterate over collections
SYNOPSIS¶
Access the Iterator directly:
    use Moose;
    use MooseX::Iterator;
    my $iter = MooseX::Iterator::Array->new( collection => [ 1, 2, 3, 4, 5, 6 ] );
    my $count = 1;
    while ( $iter->has_next ) {
        print $iter->next;
    }
Or use the meta class:
    package TestIterator;
    use Moose;
    use MooseX::Iterator;
    has collection => (
        is      => 'ro',
        isa     => 'HashRef',
        default => sub { { one => '1', two => '2', three => '3' } },
    );
    has iter => (
        metaclass    => 'Iterable',
        iterate_over => 'collection',
    );
    no Moose;
    package main;
    use Data::Dumper;
    my $test = TestIterator->new;
    my $iter = $test->iter;
    while ( $iter->has_next ) {
        my $next = $iter->next;
        print $next->{'key'}   . "\n";
        print $next->{'value'} . "\n";
    }
DESCRIPTION¶
This is an attempt to add smalltalk-like streams to Moose. It currently works with ArrayRefs and HashRefs.
- next
 - The next method provides the next item in the colletion.
    
    
For arrays it returns the element of the array For hashs it returns a pair as a hashref with the keys: key and value - has_next
 - The has_next method is a boolean method that is true if there is another item in the colletion after the current item. and falue if there isn't.
 - peek
 - The peek method returns the next item without moving the state of the iterator forward. It returns undef if it is at the end of the collection.
 - reset
 - Resets the cursor, so you can iterate through the elements again.
 - Subclassing MooseX::Iterator::Meta::Iterable
 - When subclassing MooseX::Iterator::Meta::Iterable for your own iterators override MooseX::Iterator::Meta::Iterable::_calculate_iterator_class_for_type to returns the name of the class that iterates over your new collection type. The class must implement the MooseX::Iterator::Role role.
 
AUTHOR¶
Robert Boone <rlb@cpan.org>
And thank you to Steven Little (steven) and Matt Trout (mst) for the help and advice they gave.
CONTRIBUTORS¶
Johannes Plunien
Code Repository¶
Git - http://github.com/rlb3/moosex-iterator/tree/master
COPYRIGHT AND LICENSE¶
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
POD ERRORS¶
Hey! The above document had some coding errors, which are explained below:
- Around line 96:
 - '=item' outside of any '=over'
 
| 2017-10-03 | perl v5.26.1 |