- or download this
01 my ( $pattern, $mismatches_allowed ) = @_; - or download this
02 if ( $mismatches_allowed == 0 ) { return $pattern } - or download this
03 elsif ( length($pattern) <= $mismatches_allowed ) {
04 $pattern =~ tr/ACTG/./;
05 return $pattern;
06 }
- or download this
07 else { - or download this
08 my ( $first, $rest ) = $pattern =~ /^(.)(.*)/; - or download this
09 my $after_match = make_approximate( $rest, $mismatches_allowed ); - or download this
10 if ( $first =~ /[ACGT]/ ) {
11 my $after_miss = make_approximate( $rest, $mismatches_al
+lowed - 1 );
12 return (?:$first$after_match|.$after_miss);
13 }
- or download this
14 else { return $first$after_match }
15 }