+ -
当前位置:首页 → 问答吧 → 似乎由于换行符的存在。。。此句不能被执行。。

似乎由于换行符的存在。。。此句不能被执行。。

时间:2011-06-28

来源:互联网

请问如果
$seq1 is
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNN

$seq2 is
ATGGATGAAGATGAATTTGAATTGCAGCCACAAGAGCCAAACTCATTTTT
TGATGGAATAGGAGCTGATGCTACACACATGGATGGTGATCAGATTGTTG
TGGAAATACAAGAAGCAGTTTTTGTTTCTAATATTGTGGATTCTGACATA
ACTGTGCATAACTTTGTTCCTGATGACCCAGACTCAGTTGTAATCCAAGA
TGTTGTTGAAGATGTTGTCATAGAGGAGGATGTTCAGTGCTCAGATATCT
TAGAAGAGGCAGATGTATCTGAAAATGTCATCATTCCTGAGCAAGTGCTG
GACTCAGATGTAACTGAAGAAGTTTCTTTACCACACTGCACAGTCCCAGA
TGATGTTTTAGCTTCTGACATTACTTCAACCTCAATGTCTATGCCAGAAC
ATGTTTTAACGAGTGAATCCATGCATGTGTGTGACATTGGACATGTTGAA
CATATGGTGCATGATAGTGTAGTGGAAGCAGAAATCATTACTGATCCTCT
GACGAGTGACATAGTTTCAGAAGAAGTATTGGTAGCAGACTGTGCCCCTG
AAGCAGTCATAGATGCCAGCGGGATCTCAGTGGACCAGCAAGATAATGAC
AAAGCCAGCTGTGAGGACTACCTAATGATTTCGTTGGATGATGCTGGCAA
AATAGAACATGATGGTTCCACTGGAGTGACCATCGATGCAGAATCAGAAA
TGGATCCTTGTAAAGTGGAT

然后如何执行 $out =~s/$seq1/$seq2/  ???? 似乎由于换行符的存在。。。此句不能被执行。。。。谢谢!!

作者: havocor   发布时间: 2011-06-28

本帖最后由 newstudent2011 于 2011-06-28 17:10 编辑

不执行就是匹配不成功!

另外,你的字符里面是不是有特殊字符?有特殊字符会报错,你试试转义

$seq1 = qutomata($seq1);

$seq2 = qutomata($seq2);

$out =~s/$seq1/$seq2/


应该和换行符无关,\n \r都不算特殊字符

不过如果是windows 生成的txt数据,小心里面有隐藏的\r 很讨厌

你的文本里面也许不存在一摸样的$seq1,有隐藏字符在里面面,你length 一下就知道了

作者: newstudent2011   发布时间: 2011-06-28

my $len1 = length $seq1;
$seq1 =~ s/\r//g;
my $len2 = length $seq1;

print $len1;

print $len2

看看两个length 是否相等,干掉比尔盖茨的\r!

作者: newstudent2011   发布时间: 2011-06-28