Cache-LRU
view release on metacpan or search on metacpan
lib/Cache/LRU.pm view on Meta::CPAN
252627282930313233343536373839404142434445my
(
$self
,
$key
,
$value
) =
@_
;
my
$entries
=
$self
->{_entries};
if
(
my
$old_value_ref
=
$entries
->{
$key
}) {
$$old_value_ref
=
undef
;
}
# register
my
$value_ref
= \
$value
;
Scalar::Util::weaken(
$entries
->{
$key
} =
$value_ref
);
$self
->_update_fifo(
$key
,
$value_ref
);
# expire the oldest entry if full
while
(
scalar
(
keys
%$entries
) >
$self
->{size}) {
my
$exp_key
=
shift
(@{
$self
->{_fifo}})->[0];
delete
$entries
->{
$exp_key
}
unless
$entries
->{
$exp_key
};
}
$value
;
( run in 0.212 second using v1.01-cache-2.11-cpan-fb7fbe3ddfd )