Я использую Perl для сценария, который принимает входные данные в виде двух коротких цепочек ДНК. В качестве выходных данных я объединяю строки из двух строк, а затем печатаю вторую строку, выстроенную поверх ее копии, в конце объединенной строки. Например: если входной строкой является AAAA и TTTTT, выведите:
AAAAATTTTT
TTTTT
Я знаю, что есть и другие способы сделать это, но мне любопытно узнать, почему мое использование tr /// не работает.
Код для программы:
use strict;
use warnings;
print "enter a DNA sequence \n";
$DNA1=<>; #<> shorthand for STDIN
$DNA1=~ s/\r?\n?$//;
print $DNA1 "\n\n";
print "enter second DNA sequence \n";
$DNA2=<>;
$DNA2=~ s/\r?\n?$//;
print $DNA2 "\n\n";
$DNA= join("",($DNA1,$DNA2));
print "Both DNA sequences are \"$DNA\" \n\n";
$DNA3=$DNA1;
$DNA3=~ tr/ATCGatcg//;
print $DNA3 "\n\n";
$DNA4= join("",($DNA3,$DNA2));
print $DNA4 "\n\n";
exit;