chomp用来去掉字符串结尾的空行,这是我之前的理解。
今天仔细看了chomp的文档,原来chomp不一定只用来删除字符串结尾的空行,它可以删除结尾的$/, 只不过$/的默认值是newline,所以给人的感觉chomp总是用来删除结尾的空行。
通过改变$/的默认值,可以让chomp变得更灵活。
比如你的某个变量$var结尾有多个空行,怎么删除呢?
可以:
$/="";
chomp($var);
如果$var的结尾是a,你想删除a,
$/="a";
chomp($var);
【转】[Perl]chomp 和 $/
再比如windows 文件换行符为”\r\n“,这时候可以:(但是记住!在后面针对linux文件继续用chomp的时候,一定要把$/改回来,即改成$/ = "\n")
$/="\r\n";
chomp;
=========================================
有网友说我的斜线写反了。查了查perlvar, 发现 $\ 和$/是两个不同的东西:
$/: The input record separator, newline by default.
$\: The output record separator for the print operator.
chomp: removes any trailing string that corresponds to the current value of $/
=========================================
有网友说我的斜线写反了。查了查perlvar, 发现 $\ 和$/是两个不同的东西:
$/: The input record separator, newline by default.
$\: The output record separator for the print operator.
chomp: removes any trailing string that corresponds to the current value of $/
发现后来别人给我的文件各种奇葩的格式都有,有的chomp之后行末还是会有空格。那么这个时候:
$_ =~ s/\s+$//; #####将末尾的空格,换行符都去掉,可以代替chomp;而且更好用些。