ndbm_file.pm

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

PM
78
字号
package Memoize::NDBM_File;=head1 NAMEMemoize::NDBM_File - glue to provide EXISTS for NDBM_File for Storable use=head1 DESCRIPTIONSee L<Memoize>.=cutuse NDBM_File;@ISA = qw(NDBM_File);$VERSION = 0.65;$Verbose = 0;sub AUTOLOAD {  warn "Nonexistent function $AUTOLOAD invoked in Memoize::NDBM_File\n";}sub import {  warn "Importing Memoize::NDBM_File\n" if $Verbose;}my %keylist;# This is so ridiculous...sub _backhash {  my $self = shift;  my %fakehash;  my $k;   for ($k = $self->FIRSTKEY(); defined $k; $k = $self->NEXTKEY($k)) {    $fakehash{$k} = undef;  }  $keylist{$self} = \%fakehash;}sub EXISTS {  warn "Memoize::NDBM_File EXISTS (@_)\n" if $Verbose;  my $self = shift;  _backhash($self)  unless exists $keylist{$self};  my $r = exists $keylist{$self}{$_[0]};  warn "Memoize::NDBM_File EXISTS (@_) ==> $r\n" if $Verbose;  $r;}sub DEFINED {  warn "Memoize::NDBM_File DEFINED (@_)\n" if $Verbose;  my $self = shift;  _backhash($self)  unless exists $keylist{$self};  defined $keylist{$self}{$_[0]};}sub DESTROY {  warn "Memoize::NDBM_File DESTROY (@_)\n" if $Verbose;  my $self = shift;  delete $keylist{$self};   # So much for reference counting...  $self->SUPER::DESTROY(@_);}# Maybe establish the keylist at TIEHASH time instead?sub STORE {  warn "Memoize::NDBM_File STORE (@_)\n" if $VERBOSE;  my $self = shift;  $keylist{$self}{$_[0]} = undef;  $self->SUPER::STORE(@_);}# Inherit FETCH and TIEHASH1;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?