From: Len Weisberg Date: Fri, 28 Apr 2006 20:36:05 +0000 (-0700) Subject: [perl #39026] Tie::Memoize::EXISTS not caching the value X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=9f2f24b26d701cdde1ef2fd743269674644906fd;p=p5sagit%2Fp5-mst-13.2.git [perl #39026] Tie::Memoize::EXISTS not caching the value From: Len Weisberg (via RT) Message-ID: p4raw-id: //depot/perl@29283 --- diff --git a/lib/Tie/Memoize.pm b/lib/Tie/Memoize.pm index 2793a04..dbe1442 100644 --- a/lib/Tie/Memoize.pm +++ b/lib/Tie/Memoize.pm @@ -2,7 +2,7 @@ use strict; package Tie::Memoize; use Tie::Hash; our @ISA = 'Tie::ExtraHash'; -our $VERSION = '1.0'; +our $VERSION = '1.1'; our $exists_token = \undef; @@ -30,11 +30,11 @@ sub EXISTS { my $cache = $a->[1]{$key}; return $cache if defined $cache; # Existence cache my @res = $a->[3]($key,$a->[4]); - $_[0][1]{$key} = 0, return unless @res; # Cache non-existence + $a->[1]{$key} = 0, return unless @res; # Cache non-existence # Now we know it exists - return ($_[0][1]{$key} = 1) if $a->[5]; # Only existence reported + return ($a->[1]{$key} = 1) if $a->[5]; # Only existence reported # Now know the value - $_[0][0]{$key} = $res[0]; # Store data + $a->[0]{$key} = $res[0]; # Store data return 1 }