my @s = ( "AYGTACTAGACTACAGACTACAGACATCTACAGACTCATCAGCAGCATATTTA", "ACGTACTAGACTACAGACTACAGACATCTACAGACTCATCAGCAGCATATTKA", "ACGTACTAGWCTACAGACTACAGACATCTACAGACTCATCAGCAGCATATTTA", "ACGTACTAGACTACAGACTACAGMCATCTACAGACTCATCAGCAGCATATTTA", "ACGTACTAGACTACAGACTACAGACATCTACAGACTCATRAGCAGCATATTTA", # ... ); my $m = shift @s; for my $s (@s) { my $m_ = $m; $m_ =~ tr/ACGT/\0/c; my $s_ = $s; $s_ =~ tr/ACGT/\0/c; $m = $m ^ $m_ ^ $s ^ $s_ | $m_ & $s_; } say $m; # AYGTACTAGWCTACAGACTACAGMCATCTACAGACTCATRAGCAGCATATTKA ^ ^ ^ ^ ^