diff options
Diffstat (limited to 'lib/Memoize/ExpireFile.pm')
-rw-r--r-- | lib/Memoize/ExpireFile.pm | 28 |
1 files changed, 9 insertions, 19 deletions
diff --git a/lib/Memoize/ExpireFile.pm b/lib/Memoize/ExpireFile.pm index 22e4d67b99..cca9fba651 100644 --- a/lib/Memoize/ExpireFile.pm +++ b/lib/Memoize/ExpireFile.pm @@ -10,25 +10,15 @@ See L<Memoize::Expire>. =cut +$VERSION = 0.65; use Carp; +my $Zero = pack("N", 0); + sub TIEHASH { my ($package, %args) = @_; - my %cache; - if ($args{TIE}) { - my ($module, @opts) = @{$args{TIE}}; - my $modulefile = $module . '.pm'; - $modulefile =~ s{::}{/}g; - eval { require $modulefile }; - if ($@) { - croak "Memoize::ExpireFile: Couldn't load hash tie module `$module': $@; aborting"; - } - my $rc = (tie %cache => $module, @opts); - unless ($rc) { - croak "Memoize::ExpireFile: Couldn't tie hash to `$module': $@; aborting"; - } - } - bless {ARGS => \%args, C => \%cache} => $package; + my $cache = $args{HASH} || {}; + bless {ARGS => \%args, C => $cache} => $package; } @@ -47,11 +37,11 @@ sub FETCH { sub EXISTS { my ($self, $key) = @_; - my $old_date = $self->{C}{"T$key"} || "0"; + my $old_date = $self->{C}{"T$key"} || $Zero; my $cur_date = pack("N", (stat($key))[9]); - if ($self->{ARGS}{CHECK_DATE} && $old_date gt $cur_date) { - return $self->{ARGS}{CHECK_DATE}->($key, $old_date, $cur_date); - } +# if ($self->{ARGS}{CHECK_DATE} && $old_date gt $cur_date) { +# return $self->{ARGS}{CHECK_DATE}->($key, $old_date, $cur_date); +# } return $old_date ge $cur_date; } |