Initial Commit
This commit is contained in:
49
database/perl/lib/Memoize/ExpireTest.pm
Normal file
49
database/perl/lib/Memoize/ExpireTest.pm
Normal file
@@ -0,0 +1,49 @@
|
||||
package Memoize::ExpireTest;
|
||||
|
||||
=head1 NAME
|
||||
|
||||
Memoize::ExpireTest - test for Memoize expiration semantics
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
This module is just for testing expiration semantics. It's not a very
|
||||
good example of how to write an expiration module.
|
||||
|
||||
If you are looking for an example, I recommend that you look at the
|
||||
simple example in the Memoize::Expire documentation, or at the code
|
||||
for Memoize::Expire itself.
|
||||
|
||||
If you have questions, I will be happy to answer them if you send them
|
||||
to mjd-perl-memoize+@plover.com.
|
||||
|
||||
=cut
|
||||
|
||||
$VERSION = '1.03';
|
||||
my %cache;
|
||||
|
||||
sub TIEHASH {
|
||||
my ($pack) = @_;
|
||||
bless \%cache => $pack;
|
||||
}
|
||||
|
||||
sub EXISTS {
|
||||
my ($cache, $key) = @_;
|
||||
exists $cache->{$key} ? 1 : 0;
|
||||
}
|
||||
|
||||
sub FETCH {
|
||||
my ($cache, $key) = @_;
|
||||
$cache->{$key};
|
||||
}
|
||||
|
||||
sub STORE {
|
||||
my ($cache, $key, $val) = @_;
|
||||
$cache->{$key} = $val;
|
||||
}
|
||||
|
||||
sub expire {
|
||||
my ($key) = @_;
|
||||
delete $cache{$key};
|
||||
}
|
||||
|
||||
1;
|
||||
Reference in New Issue
Block a user