📄 expirefile.pm
字号:
package Memoize::ExpireFile;=head1 NAMEMemoize::ExpireFile - test for Memoize expiration semantics=head1 DESCRIPTIONSee L<Memoize::Expire>.=cut$VERSION = 1.01;use Carp;my $Zero = pack("N", 0);sub TIEHASH { my ($package, %args) = @_; my $cache = $args{HASH} || {}; bless {ARGS => \%args, C => $cache} => $package;}sub STORE {# print "Expiry manager STORE handler\n"; my ($self, $key, $data) = @_; my $cache = $self->{C}; my $cur_date = pack("N", (stat($key))[9]); $cache->{"C$key"} = $data; $cache->{"T$key"} = $cur_date;}sub FETCH { my ($self, $key) = @_; $self->{C}{"C$key"};}sub EXISTS {# print "Expiry manager EXISTS handler\n"; my ($self, $key) = @_; my $cache_date = $self->{C}{"T$key"} || $Zero; my $file_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);# } my $res = $cache_date ge $file_date;# print $res ? "... still good\n" : "... expired\n"; $res;}1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -