我正在使用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