NAME

Hash::Iterator - Hashtable Iterator.

SYNOPSIS

my $iterator = Hash::Iterator->new( map { $_ => uc $_ } 'a'..'z' );

while ($iterator->next) {
    say sprintf("%s => %s", $iterator->peek_key, $iterator->peek_value);
}

my $iterator = Hash::Iterator->new( a => [qw(one two three)] );
$iterator->next;

if ( $iterator->is_ref('ARRAY') ) {
    foreach my $item ( @{$iterator->peek_value} ) {
        say $item;
    }
}

DESCRIPTION

CONSTRUCTORS

new

my $iterator = Hash::Iterator->new( %hash );

Return a Hash::Iterator for hash

METHODS

next

$iterator->next;

Advance the iterator to the next key-value pair

previous

$iterator->previous;

Advance the iterator to the previous key-value pair

done

do {
    ....
} while ($iterator->done);

Returns a boolean value if the iterator was exhausted

peek_key

say $iterator->peek_key;

Return the key of the current key-value pair. It's not allowed to call this method before next() was called for the first time or after the iterator was exhausted.

peek_value

say $iterator->peek_value;

Return the value of the current key-value pair. It's not allowed to call this method before next() was called for the first time or after the iterator was exhausted.

is_ref

if ( $iterator->is_ref('ARRAY') ) {
    ...
}

Returns a boolean value if value is a reference.

get_keys

my @keys =  $iterator->get_keys;

Returns a list of all keys from hash

AUTHOR

vlad mirkos, <vladmirkos@sd.apple.com>

COPYRIGHT AND LICENSE

Copyright (C) 2017 by vlad mirkos

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.18.2 or, at your option, any later version of Perl 5 you may have available.