Algorithm-RabinKarp
view release on metacpan or search on metacpan
my $fragment = substr($source, $i, $k);
my $occurences = $source_seen{$fragment}++;
my $kgram = shift @{$values[$i]};
is $kgram_seen{$kgram}++, $occurences,
"$fragment has occurred $occurences times.";
my ($start, $end) = @{$values[$i]};
is_deeply [$start, $end], [$i, $i + $k - 1],
"$fragment position correctly recorded";
is substr($source, $start, $end - $start + 1 ), $fragment,
"The recorded offsets correctly select $fragment";
}
( run in 0.338 second using v1.01-cache-2.11-cpan-94b05bcf43c )