| 查看: 317 | 回复: 0 | ||
[求助]
关于perl中计算字符数的问题
|
|
这段代码用来计算一段氨基酸序列的长度: print "Type the filename of protein sequencedata that you want to search:\n"; $filename = <STDIN>; unless ( open(FILE, $filename)) { print "Cannot find the file.\n"; exit; } @protein = <FILE>; close FILE; $protein = join( '', @protein); $protein =~ s/\s//g; $count = ($protein =~ s/([a-z])/1/isg); print "The length of sequence is :", $count; 这一段测试有效且正确。 其中 $count = ($protein =~ s/([a-z])/1/isg); 这条代码是在查阅资料后写的。 但不明白其中的原理。 经测试, 当将代码$count = ($protein =~ s/([a-z])/1/isg)替换成$count = $protein或$count = ($protein)时,得到的结果都是一整段蛋白质序列而不是一个整数。理解是,这样直接将变量$protein的内容赋值到$count中了,没有计算。 当替换成$count = ('1','2','3','4','1')时,得到的结果是5。可见这里产生了计算。 但是,当$count = ($protein)时,不是可以近似看成$count = ('m','s','a','s',...);吗?为什么这样又不会产生计算了呢? 而经过($protein =~ s/([a-z])/1/isg)这条代码将字符替换一遍后,却能计算字符数了! 发自小木虫IOS客户端 |
» 猜你喜欢
今年E04面上
已经有23人回复
生命口会评
已经有6人回复
27届辽宁大学应届毕业生申博
已经有3人回复
关于如何从代码看上不上会
已经有23人回复
大龄残疾硕士的一点执念
已经有25人回复
chemdraw
已经有6人回复
祈祷青基必中
已经有10人回复
b口会评
已经有6人回复
信息学部会评时间
已经有3人回复
在职考研
已经有7人回复











回复此楼