| 查看: 369 | 回复: 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客户端 |
» 猜你喜欢
8月时间戳变的,举个手。玩一下,释放压力
已经有11人回复
影响面上的因素
已经有6人回复
一个有机合成实验室都需要哪些设备?
已经有11人回复
求各位大神看下
已经有23人回复
面上再次挂了,太难了,躺也躺不了,倦也卷不过,小学校之殇!
已经有30人回复
2027年申博
已经有4人回复
好消息?这个有何含义???
已经有10人回复
咨询面上基金
已经有4人回复
【2027博士申请】纳米药物递送方向
已经有4人回复
UV压敏胶开发
已经有7人回复










回复此楼