1 package Memoize::NDBM_File;
5 Memoize::NDBM_File - glue to provide EXISTS for NDBM_File for Storable use
19 warn "Nonexistent function $AUTOLOAD invoked in Memoize::NDBM_File\n";
23 warn "Importing Memoize::NDBM_File\n" if $Verbose;
29 # This is so ridiculous...
34 for ($k = $self->FIRSTKEY(); defined $k; $k = $self->NEXTKEY($k)) {
35 $fakehash{$k} = undef;
37 $keylist{$self} = \%fakehash;
41 warn "Memoize::NDBM_File EXISTS (@_)\n" if $Verbose;
43 _backhash($self) unless exists $keylist{$self};
44 my $r = exists $keylist{$self}{$_[0]};
45 warn "Memoize::NDBM_File EXISTS (@_) ==> $r\n" if $Verbose;
50 warn "Memoize::NDBM_File DEFINED (@_)\n" if $Verbose;
52 _backhash($self) unless exists $keylist{$self};
53 defined $keylist{$self}{$_[0]};
57 warn "Memoize::NDBM_File DESTROY (@_)\n" if $Verbose;
59 delete $keylist{$self}; # So much for reference counting...
60 $self->SUPER::DESTROY(@_);
63 # Maybe establish the keylist at TIEHASH time instead?
66 warn "Memoize::NDBM_File STORE (@_)\n" if $VERBOSE;
68 $keylist{$self}{$_[0]} = undef;
69 $self->SUPER::STORE(@_);
72 # Inherit FETCH and TIEHASH