NAME
Module::Generic::Iterator - An Array Iterator Object Class
SYNOPSIS
my $i = Module::Generic::Iterator->new( [qw( Joe John Mary )] );
# or also:
my $a = Module::Generic::Array->new( [qw( Joe John Mary )] );
my $i = $a->iterator;
while( $i->has_next )
{
my $elem = $i->next;
my $value = $elem->value;
# Get the next element relative to our element
printf( "Next value is: %s at offset %d\n", $elem->next, $elem->next->pos );
}
VERSION
v1.1.1
DESCRIPTION
This provides an object oriented array iterator. Each of its elements are Module::Generic::Iterator::Element object
METHODS
new
Provided with an array reference or an Module::Generic::Array object, and this will create a new iterator and return it.
elements
Contains the array elements
eof
Returns true if the position in the iterator has reached the end of the array.
find
Creates a clone of the current array object and returns it.Provided wit an array element and this returns its position in the array starting at 0.
If nothing was found, this returns undef.
first
Returns the first element of the array.
has_next
Returns true if there is another item after the current one.
has_prev
Returns true if there is another item before the current one.
last
Returns the last element of the array.
length
Returns the size of the array, starting from 1, as a Module::Generic::Number object.
next
Returns the next Module::Generic::Iterator::Element object or undef if there are no more element.
pos
Sets or returns the current position in the array.
This is an lvalue method.
$e->pos = 10; # Sets the current position to 10
my $pos = $e->pos; # Returns the current position
prev
Returns the previous Module::Generic::Iterator::Element object or undef if there are no more previous element.
reset
Reset the position inside the array and sets it to 0.
_find_pos
Provided with an item, this returns its position in the array or undef if it is not in the array.
SERIALISATION
Serialisation by CBOR, Sereal and Storable::Improved (or the legacy Storable) is supported by this package. To that effect, the following subroutines are implemented: FREEZE
, THAW
, STORABLE_freeze
and STORABLE_thaw
SEE ALSO
Module::Generic::Iterator::Element, Module::Generic::Array
AUTHOR
Jacques Deguest <jack@deguest.jp>
COPYRIGHT & LICENSE
Copyright (c) 2000-2020 DEGUEST Pte. Ltd.
You can use, copy, modify and redistribute this package and associated files under the same terms as Perl itself.