@in = split(//,); pop(@in); $regex = '.*'.join('(.*)',@in).'.*'; @sequences = qw/ABCDHA ACDBGJ CADHMK ABICID/; for (@sequences) { @letters = split(//,$_); s/.*($in[0].*$in[$#in]).*/$1/; if ((@gaps) = (m/$regex/o)){ if (length(join('',@gaps)) > $biglen) { unshift(@in_the_running, $_); $biglen = length(join('',@gaps)) } else { push(@in_the_running, $_) } } } print $in_the_running[0], "\n"; @base = split(//,$in_the_running[0]); for my $seqno (1..$#in_the_running) { @seq = split(//,$in_the_running[$seqno]); for $q (@base) { if ($seq[0] eq $q) { print $q; shift(@seq); next } else { print '-' } } print "\n"; }