Commit | Line | Data |
9038e305 |
1 | package Memoize::ExpireTest; |
a0cb3900 |
2 | |
9038e305 |
3 | =head1 NAME |
a0cb3900 |
4 | |
9038e305 |
5 | Memoize::ExpireTest - test for Memoize expiration semantics |
6 | |
7 | =head1 DESCRIPTION |
8 | |
899dc88a |
9 | This module is just for testing expiration semantics. It's not a very |
10 | good example of how to write an expiration module. |
9038e305 |
11 | |
12 | If you are looking for an example, I recommend that you look at the |
13 | simple example in the Memoize::Expire documentation, or at the code |
14 | for Memoize::Expire itself. |
15 | |
16 | If you have questions, I will be happy to answer them if you send them |
899dc88a |
17 | to mjd-perl-memoize+@plover.com. |
9038e305 |
18 | |
19 | =cut |
a0cb3900 |
20 | |
899dc88a |
21 | $VERSION = 0.65; |
a0cb3900 |
22 | my %cache; |
23 | |
24 | sub TIEHASH { |
25 | my ($pack) = @_; |
26 | bless \%cache => $pack; |
27 | } |
28 | |
29 | sub EXISTS { |
30 | my ($cache, $key) = @_; |
31 | exists $cache->{$key} ? 1 : 0; |
32 | } |
33 | |
34 | sub FETCH { |
35 | my ($cache, $key) = @_; |
36 | $cache->{$key}; |
37 | } |
38 | |
39 | sub STORE { |
40 | my ($cache, $key, $val) = @_; |
41 | $cache->{$key} = $val; |
42 | } |
43 | |
44 | sub expire { |
45 | my ($key) = @_; |
46 | delete $cache{$key}; |
47 | } |
48 | |
49 | 1; |