^ in this case is bitwise-OR.
When you bitwise-OR two strings, where the bytes in the two strings are the same, the byte in the resultant string will be chr(0); when they are different, the results will be non-chr(0). This allows you to count the number of differences in two strings very quickly:
$seq1 = 'ACGTACGTACGTACGT';;
$seq2 = 'TCGATCGATCGATCGA';;
print ( $seq1 ^ $seq2 );;
§ §§ §§ §§ §
print length( $seq1) - ( $seq1 ^ $seq2 ) =~ tr[\0][\0];;
8
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
|