https://github.com/tokuhirom/Cache-Memory-Simple/blob/master/lib/Cache/Memory/Simple.pm
Expire されたデータがとれなくなるだけのナイーブなキャッシュ実装をかきました。
わりとみんな手でかいてるとおもうんですが、手でかくとバグりやすいしテストかくのも面倒なので CPAN にあげておくといういつものアレです。Expire がきいてシンプルではやそうなのがなかったんでまあ。
10秒ぐらいhttpdの中にオンメモリキャッシュしときたいなあ、という時などにどうぞ。
使い方は以下のようなかんじです。
use Cache::Memory::Simple;
use feature qw/state/;
sub get_stuff {
my ($class, $key) = @_;
state $cache = Cache::Memory::Simple->new();
$cache->get_or_set(
$key, sub {
Storage->get($key) # slow operation
}, 10 # cache in 10 seconds
);
}