| Cache documentation | Contained in the Cache distribution. |
Cache::RemovalStrategy::LRU - LRU Removal Strategy for a Cache
Implements a Least Recently Used removal strategy for a Cache. When removing entries from the cache, the 'stalest' will be removed first.
See Cache::RemovalStrategy for details.
Cache
Chris Leishman <chris@leishman.org> Based on work by DeWitt Clinton <dewitt@unto.net>
Copyright (C) 2003-2006 Chris Leishman. All Rights Reserved.
This module is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. This program is free software; you can redistribute or modify it under the same terms as Perl itself.
$Id: LRU.pm,v 1.4 2006/01/31 15:23:58 caleishm Exp $
| Cache documentation | Contained in the Cache distribution. |
package Cache::RemovalStrategy::LRU; require 5.006; use strict; use warnings; use base qw(Cache::RemovalStrategy); use fields qw(); sub new { my Cache::RemovalStrategy::LRU $self = shift; $self = fields::new($self) unless ref $self; $self->SUPER::new(@_); return $self; } sub remove_size { my Cache::RemovalStrategy::LRU $self = shift; my ($cache, $size) = @_; while ($size > 0) { my $removed = $cache->remove_stalest(); defined $removed or last; $size -= $removed; } } 1; __END__