http://qs321.pair.com?node_id=528597


in reply to Module RFC: Audio::Scrobbler::SimilarArtists

You're doing too much work, when you can just use Memoize and take advantage of the Memoize::Storable capability.

package Audio::Scrobbler::SimilarArtists; use strict; use Memoize; my %cache; sub new { my ($class, %parameters) = @_; my $self = bless ({}, ref ($class) || $class); my %options = ( min_match => 75, cache_time => '1 week', cache_file => '/tmp/audioscrobbler.cache', %parameters, ); $self->{'_options'} = \%options; $self->{cache} = \%cache; tie %{ $self->{cache} } => 'GDBM_File', $self->{_options}->{cache_file}, O_RDWR|O_CREAT, 066 +6; memoize 'lookup', SCALAR_CACHE => [HASH => \%cache]; return $self; } sub lookup { # same as above, but without caching code: memoize handles that. }
<-radiant.matrix->
A collection of thoughts and links from the minds of geeks
The Code that can be seen is not the true Code
I haven't found a problem yet that can't be solved by a well-placed trebuchet