diff options
Diffstat (limited to 'lib/Memoize/ExpireTest.pm')
-rw-r--r-- | lib/Memoize/ExpireTest.pm | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/Memoize/ExpireTest.pm b/lib/Memoize/ExpireTest.pm new file mode 100644 index 0000000000..1c889ed934 --- /dev/null +++ b/lib/Memoize/ExpireTest.pm @@ -0,0 +1,42 @@ + +# This is just for testing expiration semantics. +# It's not actually 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. + +package Memoize::ExpireTest; + +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; |