Digest-ssdeep
view release on metacpan or search on metacpan
lib/Digest/ssdeep.pm view on Meta::CPAN
# Returns: the actual rolling hash value
sub _roll_hash {
my $char = shift;
my $char7bf = shift @last7chars;
push @last7chars, $char;
$roll_h2 += 7 * $char - $roll_h1;
$roll_h1 += $char - $char7bf;
$roll_h3 <<= 5; # 5*7 = 35 (so it vanish after 7 iterations)
$roll_h3 &= 0xffffffff;
$roll_h3 ^= $char;
#printf("c=%d cAnt=%d H1=%u H2=%u H3=%u\n",
# $char, $char7bf,
# $roll_h1, $roll_h2, $roll_h3);
return $roll_h1 + $roll_h2 + $roll_h3;
}
( run in 2.102 seconds using v1.01-cache-2.11-cpan-71847e10f99 )