internal package Foswiki::ListIterator

See also Developing plugins, Developer's Bible, Technical Overview

internal package Foswiki::ListIterator is a Foswiki::Iterator

implements Foswiki::Iterator

Iterator over a perl list

WARNING: this Iterator will skip any elements that are == undef. SMELL: hasNext should not 'return 1 if defined($this->{next}), but rather use a boolean - to allow array elements to be undef too.



hasNext() -> $boolean

Returns false when the iterator is exhausted.

while ($it->hasNext()) {

skip(count) -> $countremaining

skip X elements (returns 0 if successful, or number of elements remaining to skip if there are not enough elements to skip) skip must set up next as though hasNext was called.

next() -> $data

Return the next entry in the list.



For example,
my @list = ( 1, 2, 3 );

while ($it->hasNext()) {
    my $x = $it->next();
    print "$x, ";
will print
2, 4

ObjectMethod all() → @list


This method is cheap if it is called when the cursor is at the first element in the iteration, and expensive otherwise, as it requires a list copy to be made.

reset() -> $boolean

Start at the begining of the list
while ($it->hasNext()) {

Topic revision: r1 - 19 Apr 2011, ProjectContributor
Ideas, requests, problems regarding Nustar Wiki? Send feedback