The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
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+