expirefile.pm

来自「视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.」· PM 代码 · 共 53 行

PM
53
字号
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 + =
减小字号Ctrl + -
显示快捷键?