Hash-StoredIterator
view release on metacpan or search on metacpan
value. This is done primarily for convenience of matching against the
key, and short callbacks that will be cluttered by parsing @_ noise.
Note: See caveats.
my @keys = hkeys( %hash )
Same as the builtin keys(), except it stores and restores the
iterator.
Note: Overriding the builtin keys(), even locally, causes strange
interactions with other builtins. When trying to export hkeys as
keys, a call to sort keys %hash would cause undef to be passed into
keys() as the first and only argument.
my @values = hvalues( %hash )
Same as the builtin values(), except it stores and restores the
iterator.
Note: Overriding the builtin values(), even locally, causes strange
interactions with other builtins. When trying to export hvalues as
values, a call to sort values %hash would cause undef to be passed
into values() as the first and only argument.
my $i = hash_get_iterator( \%hash )
Get the current iterator value.
hash_set_iterator( \%hash, $i )
Set the iterator value.
Note: Only ever set this to the value retrieved by
hash_get_iterator(), setting the iterator in any other way is
untested, and may result in undefined behavior.
hash_init_iterator( \%hash )
Initialize or reset the hash iterator.
DEPRECATED
These have been deprecated because they were terrible names. eich was
also deprecated because it was unnatural to use.
eich
use iterator() instead
eech
use hmap instead
CAVEATS
Modification of hash during iteration
Just like with the builtin each() modifying the hash between calls to
each is not recommended and can result in undefined behavior. The
builtin each() does allow for deleting the iterations key, however
that is NOT supported by this library.
sort() edge case
For some reason [sort hkeys %hash] and [sort hkeys(%hash)] both
result in a list that has all the keys and values (and strangely not
in sorted order). However [sort(hkeys(%hash))] works fine.
AUTHORS
Chad Granum exodist7@gmail.com
COPYRIGHT
Copyright (C) 2013 Chad Granum
Hash-StoredIterator is free software; Standard perl licence.
Hash-StoredIterator is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license
for more details.
( run in 0.931 second using v1.01-cache-2.11-cpan-71847e10f99 )