The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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.