From: minima Date: Sun, 29 Sep 2002 00:50:01 +0000 (+0000) Subject: really fix the caching in all cases X-Git-Tag: PRE-1-52~185 X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=0ede244fc4076f902584ee6d088cd7fd7fd2817f;p=spider.git really fix the caching in all cases --- diff --git a/perl/Prefix.pm b/perl/Prefix.pm index 3fdcdcea..0e67801d 100644 --- a/perl/Prefix.pm +++ b/perl/Prefix.pm @@ -148,10 +148,10 @@ sub matchprefix my $pref = shift; my @partials; - $pref =~ s/-\d+$//; for (my $i = length $pref; $i; $i--) { $matchtotal++; my $s = substr($pref, 0, $i); + push @partials, $s; my $p = $cache{$s}; if ($p) { $hits++; @@ -159,10 +159,10 @@ sub matchprefix my $percent = sprintf "%.1f", $hits * 100 / $misses; dbg("Partial Prefix Cache Hit: $s Hits: $hits/$misses of $matchtotal = $percent\%"); } + $cache{$_} = $p for @partials; return @$p; } else { $misses++; - push @partials, $s; my @out = get($s); if (isdbg('prefix')) { my $part = $out[0] || "*";