#!/usr/bin/perl use strict; while( 1 ) { my $valid= or exit( 0 ); chomp( $valid ); my $dirty= or die "Missing second sequence"; chomp( $dirty ); print "Comparing $valid\nto $dirty\n"; my $dlen= length( $dirty ); $dirty .= $valid; $valid =~ s#(...)#(.*?)\Q$1\E#g; my @intron= $dirty =~ /^$valid(.*?)/ or die "Ouch! We backtracked"; if( $dlen < $+[0] ) { print "No match.\n"; } else { for my $intron ( @intron ) { next if ! length($intron); print "$intron\n"; } } } __END__ ATGGAGTCGACGAATTTGAAGAAT GCACCGATGGAGTAGGTCGACGATCTCAATTTGTCGAAGAAT ATGGAGTCGACGAATTTGAAGAAT GCACCGATGGAGTAGGTCGACGATCTCAATTTGTCGAAGACT