Data::Iter - easily iterate over a hash/array


NAME

Data::Iter - easily iterate over a hash/array


SYNOPSIS

use Data::Iter qw(:all);


my @days = qw/Mon Tue Wnd Thr Fr Su So/;
        foreach ( iter \@days )
        {               
                printf "Day: %s [%s]\n", VALUE, counter;
        }
        foreach my $i ( iter \@days )
        {               
                printf "Day: %s [%s]\n", $i->VALUE, $i->counter;
        }

my %numbers = ( 1 => 'one', 2 => 'two', 3 => 'three', 4 => 'four' );

        foreach ( iter \%numbers )
        {       
                printf "%10s [%10s] %10d\n", key, value, counter;
        }
        foreach my $i ( iter \%numbers )
        {       
                printf "%10s [%10s] %10d\n", $i->key, $i->value, $i->counter;
        }
        foreach ( iter \%numbers )
        {       
                printf "%10s [%10s] %10d\n", KEY, VALUE, COUNTER;
        }


DESCRIPTION

Data::Iter provides functions for comfortably iterating over perl data structures.

iter

Accepts a reference to an ARRAY or HASH. Returns a sorted list of 'Data::Iter' objects.

key() or KEY()

Returns the current key (HASHs only).

value() or VALUE()

Returns the current value.

counter()

Returns the current counter (starting at 0).

getvalue( index )

Returns the value at index. It behaves like an array index.

get( index )

Returns the Data::Iter object at index. It behaves like an array index.

CAVE: Future variables are read-only ! It is the common ``foreach( @something ) not change during iteration through it'' story.

Example:

        get(-1) will return the last iterator object. 

        get(-1)->value will return the position of the last
        get(-1)->value will return the value of the last

        get(1+counter) will return the next object

BUGS

Not get(counter+1), but get(1+counter) will function correctly (under perl 5.6.0).

And get(counter - 1) does not work.


=head2 EXPORT

none by default.

all: iter counter counter value VALUE key KEY get


AUTHOR

M. Ünalan, <muenalan@cpan.org>


SEE ALSO

the Class::Iter manpage, the Tie::Array::Iterable manpage, the Object::Data::Iterate manpage

 Data::Iter - easily iterate over a hash/array