really fix the caching in all cases
authorminima <minima>
Sun, 29 Sep 2002 00:50:01 +0000 (00:50 +0000)
committerminima <minima>
Sun, 29 Sep 2002 00:50:01 +0000 (00:50 +0000)
perl/Prefix.pm

index 3fdcdceaf8aa1823b43dedd01d3cbfb297fc28d0..0e67801d9e8f10ce494db023877ab5abcf67a439 100644 (file)
@@ -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] || "*";