chomp($myString);
$myString =~ s/\///g;
我可以用
替换这两个$myString =~ s/\s//g;
有什么区别吗?请解释一下。
答案 0 :(得分:10)
如果$ myString存在,你的第一个代码将在$ myString结尾处换行,然后删除所有“/”字符。第二行代码将删除所有空格字符。有拼写错误吗?
也许你想知道你可以取代它:
chomp($myString);
$myString =~ s/\s//g;
用这个:
$myString =~ s/\s//g;
如果那是问题,那么是的。由于换行符号为空格,因此第二个代码示例执行上述两行的作业。
答案 1 :(得分:1)
来自perldoc chomp:
chomp 当您担心最终记录可能缺少其换行符时,从输入记录的末尾删除换行符。
在段落模式($/ = "" )
中,它会从字符串中删除所有尾随换行符。
在slurp模式($/ = undef
)或固定长度记录模式($/
是对整数等的引用时,请参阅perlvar) chomp()将不会删除任何东西。
你可以从
等字符串中删除前导和尾随空格$string =~ s{^\s+|\s+$}{}g
答案 2 :(得分:0)
Chomp将删除字符串末尾的换行符,但不会删除空格。典型的修剪函数使用以下两个替换行:
$string =~ s/^\s+//;
$string =~ s/\s+$//;
第一行删除字符串开头的所有空格,第二行删除字符串结尾后的空格。