package GNS::Cache; use strict; ########### ## How this for strangeness ... ########### sub new { my $class=shift; my $size=shift; my $self=bless { }; $self->{size}=($size ? $size : 30); $self->{list}=[]; $self; } sub check { my $self=shift; my $id=shift; local $_; ## walk through the list foreach (@{$self->{list}}) { if ($_->[0]==$id) { return $_->[1]; } } return; } sub insert { my $self=shift; my $id=shift; my $data=shift; my $list=$self->{list}; push @$list,[$id,$data]; shift @$list if $#$list>=$self->{size}; } sub purge { my $self=shift; $self->{list}=[]; } sub dump { my $self=shift; local $_; foreach (@{$self->{list}}) { print "$_->[0] = $_->[1]\n"; } } ####### 1; __END__ #######