foreach my $key (keys %o) { my $keydisplay=1; my $target = $o{$key}; #my $threshold = 0.79; my $searchlength = length $search; my $truethreshold = int($searchlength * $threshold*100) /100; #(page46) if ($searchlength - $truethreshold >= .005) { $truethreshold += .01; } $searchlength = $truethreshold; for my $position (0 .. (length ($target) - $searchlength)) { my $test = substr $target, $position, $searchlength; my $matched = ($test ^ $search) =~ tr/\x00//; next if $matched < $truethreshold; print "\t\tFound <$test> at position $position which matches in $matched of $searchlength places\n"; } }