博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
perl chomp 函数的真正作用
阅读量:6832 次
发布时间:2019-06-26

本文共 965 字,大约阅读时间需要 3 分钟。

之前一直以为chomp函数只是去掉字符串末尾的\n, 但是今天写程序遇到一个bug,最后的原因就处在chomp上;

读取fasta文件,内容如下:

>1ATGCTAGCTACGTACGTACGTTTTTTTTT>2ACGATCGACGATCGTACGTACGTACGATT>3ATGCATGCTATACATCAGCTAATATCGCT

perl中$/代表默认的输入记录的分隔符;这里将$/设置为">":

#!/usr/bin/perl use warnings;use strict;my ($fasta) = @ARGV;open FASTA, $fasta or die "Can't open $fasta";local $/ = ">";while (
) { s/\n//g; print qq{
$_\n};}close $fasta;$/ = "\n";

 

运行这段代码,输出结果如下:

>1ATGCTAGCTACGTACGTACGTTTTTTTTT>2ACGATCGACGATCGTACGTACGTACGATT>3ATGCATGCTATACATCAGCTAATATCGCT

可以看出,$/的值出现在每行的最后;接下来使用chomp函数

#!/usr/bin/perl use warnings;use strict;my ($fasta) = @ARGV;open FASTA, $fasta or die "Can't open $fasta";local $/ = ">";while (
) { chomp; s/\n//g; print qq{
$_\n};}close $fasta;$/ = "\n";

 

输出结果为:

1ATGCTAGCTACGTACGTACGTTTTTTTTT2ACGATCGACGATCGTACGTACGTACGATT3ATGCATGCTATACATCAGCTAATATCGCT  

第一行因为是空行,这里没显示出来;可以看到每行末尾的>符号被去除了,所以chomp的真正作用是去除字符串末尾的$/,只是因为默认情况下

$/为\n,造成chomp就是去除\n的假象;

  

  

 

转载地址:http://kitkl.baihongyu.com/

你可能感兴趣的文章
CSS常用属性
查看>>
搜索引擎开始「实体搜索」新领域竞争,Google、百度分别发力实体搜索产品
查看>>
让敏捷落地-软件研发管理最佳实践(上海站)
查看>>
【R】大型机Linux系统安装R及bsub提交R任务
查看>>
演练:创建并运行托管代码的单元测试 VS2012
查看>>
C#在托盘显示图标
查看>>
把老赵的页面缓存片断改一下,呵呵
查看>>
没有使用全局变量的必要时,就尽量不要使用全局变量。
查看>>
Extjs- Ext.extend函数的使用
查看>>
hdu 1172(暴力题)
查看>>
Oracle to_char()
查看>>
Lucene4Net以及盘古分词
查看>>
thickbox问题
查看>>
HttpApplication事件&ASP.NET页面周期
查看>>
Java事务之八——分布式事务(Spring+JTA+Atomikos+Hibernate+JMS)
查看>>
(转)S5PV210--1---210启动方式和代码前16字节
查看>>
Zlib与GZip - woaidongmao - C++博客
查看>>
ASP.NET那点不为人知的事(四)
查看>>
ExtJs 4.2 treePanel
查看>>
typeof和instanceof的区别
查看>>