in reply to Comparing 2 different-sized strings

  1. You didn't show what you've tried so far
  2. You didn't define how many mismatches are permitted
  3. You didn't tell what's a "nucleotid"
  4. You didn't define what to do if there are less than 5 nucleotids on either side
  5. You expect us to work for free?

So to "solve" your problem in the most easy way, matching your description:

my $s1='TCGAGTGGCCATGAACGTGCCAATTG'; my $s2='ATGATCCTG'; ($s1,$s2) = ($s2,$s1) if length($s1) > length($s2); my $len= length $s1; print "Matches:\n"; for (my $i=0; $i+$len+10 <= length $s2; ++$i) { print substr($s2, $i, $len+10),"\n"; }

prints:

Matches: TCGAGTGGCCATGAACGTG CGAGTGGCCATGAACGTGC GAGTGGCCATGAACGTGCC AGTGGCCATGAACGTGCCA GTGGCCATGAACGTGCCAA TGGCCATGAACGTGCCAAT GGCCATGAACGTGCCAATT GCCATGAACGTGCCAATTG

I didn't bother to put the number of mismatches. In most cases it will be length($s1) ;)

>

s$$([},&%#}/&/]+}%&{})*;#$&&s&&$^X.($'^"%]=\&(|?*{%
+.+=%;.#_}\&"^"-+%*).}%:##%}={~=~:.")&e&&s""`$''`"e