#! perl -slw use strict; my @queries = qw[ GCGAT CACGT ]; chomp( my @targets = ); for my $q ( @queries ) { for my $t ( @targets ) { my $matched = ( $q ^ substr( $t, 0, length( $q ) ) ) =~ tr[\0][\0]; if( $matched == length( $q ) or $matched == length( $q )-1 and substr( $t, 0, length( $q ) ) =~ tr[N][N] == 1 ) { print "$q matched $t"; } } } __DATA__ GNGATNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN GCGANBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB CNCGTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN GBGATNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN