package WWW::2ch::Cache; use strict; use Storable qw(freeze thaw); use WWW::2ch::Cache::File; sub new { my $class = shift; my $cache = shift; my $self = bless {}, $class; if (ref($cache) =~ /^Cache::/) { $self->{cache} = $cache; } elsif ($cache) { $self->{cache} = WWW::2ch::Cache::File->new($cache); } $self; } sub set { my ($self, $key, $data) = @_; return unless $self->{cache}; $self->{cache}->set($key, freeze $data); } sub get { my ($self, $key) = @_; return +{} unless $self->{cache}; my $data = $self->{cache}->get($key); return +{} unless $data; thaw $data; } 1;