Revision history for Var-Pairs
0.000001 Fri May 25 06:52:11 2012
Initial release.
0.001000 Wed Jul 18 13:54:16 2012
First public release
0.001001 Wed Jul 18 13:55:31 2012
Update README
0.001002 Sat Mar 23 07:58:28 2013
Removed autobox dependency for t/kvs.t
(Thanks Salvatore!)
0.001003 Thu Aug 8 11:46:09 2013
Converted to use Devel::Callsite instead of Scope::Upper
in order to identify caller location for the each_...
family of functions.
0.001005 Tue Mar 11 10:17:52 2014
Added export controls (thanks Rob)
0.002000 Sat Apr 5 17:19:03 2014
Converted Pair class to array-based for a 50% speed-up
(thanks Toby!)
Added ->kv() to Pair type
(thanks Toby)
0.002001 Wed Mar 11 20:04:58 2015
Swapped a doc nit (thanks Garry!)
Documented non-resettable nature of each_kv() iterators
(i.e. they don't reset when the original hash is key()'d)
(thanks John)
Allowed each_kv to work correctly on different containers
that are passed to the same call: each_kv( %{$some_ref} )
(thanks John!)
0.002002 Wed Mar 11 20:13:33 2015
Allowed each_pair and pairs to also work correctly on different
containers that are passed to the same call
0.002003 Wed Mar 11 20:42:14 2015
Fixed brittle testing approach in t/each_via_ref.t
(Thanks Slaven!)
Neutralized irritating experimental warnings on reference operations
(Thanks Slaven)
0.002004 Wed Mar 11 21:01:52 2015
Sigh. Tweak experimentals warnings for 5.18.
(Thanks again Slaven)
0.003000 Sat Aug 20 12:04:59 2016
Strip out autoderefs to continue working under 5.23+
(thanks, Slaven)
Improve identification of each unique context
(by adding use of context())
Refactor Var::Pairs::Pair to avoid use of Data::Alias
under Perl 5.24+
(thanks Salvatore)
0.003002 Sat Aug 20 16:49:20 2016
Updated MANIFEST
Documented reliance on Data::Alias
0.003004 Sat Aug 20 19:18:50 2016
Adjusted requirement for Data::Alias
down to pre-5.22
0.003005 Mon May 7 06:55:18 2018
Made each_pair() and each_kv() clean themselves up
at the end of their caller's block, to solve the
"last of out a loop messes up the iterator" problem.
(Thanks, Rolf!)
0.004000 Mon May 7 15:44:52 2018
Allowed each_pair() and each_kv() to take a subroutine
as an iterator.
Added each_value() to return just the value iterated
without returning the key.
INCOMPATIBLE CHANGE:
Improved behaviour of each_pair() and each_kv().
Now they differentiate between:
while (my $pair = each_pair $NAMED_CONTAINER) {...}
and:
while (my $pair = each_pair EXPRESSION_PRODUCING_CONTAINER_REF) {...}
If the container is NOT passed in a named variable (i.e. as a simple
scalar, array, or hash variable), then the iteration is NOT specific
to the container, only to the location. In other words, when the argument
is an expression, the value of that expression is only significant
at the beginning of the iteration loop; if it changes during the loop,
the changes are ignored. This produces a lot more "do-what-I-mean"-ness.
0.004001 Wed May 9 18:01:58 2018
POD fix (thanks, Salvatore)
0.004002 Tue Jul 4 21:52:33 2023
* Removed all given/when and smartmatching for compatibility with Perl 5.38+