我正在使用Perl作为输入为两个DNA短串的脚本。作为输出,我连接两个字符串字符串,然后在连接字符串的末尾打印第二个串在其副本上的字符串。例如:如果输入字符串是AAAA和TTTTT然后打印:为什么不是Perl的tr ///做我想要的?
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;
这是只是格式不正确或Perl的语法格式实际上是这样吗? – 2009-04-28 15:25:50
不是“$ DNA1 =〜s/\ r?\ n?$ //;”与“chomp $ DNA1”相同? – 2009-04-28 15:28:44
是“$ DNA1 =〜s/\ r?\ n?$ //;”与“chomp $ DNA”相同,但是perl 4和更低版本不支持chomp,因此它是一种替代方案,而且我的机器安装了perl 4 – shubster 2009-04-28 15:31:10