chomp($myString);
$myString =~ s/\///g;
我可以用这两个替换它们吗?
$myString =~ s/\s//g;
有什么不同吗?请解释一下。
chomp($myString);
$myString =~ s/\s//g;
使用以下代码:
$myString =~ s/\s//g;
如果这是问题的话,那么是的。由于换行符被计算为空格,第二个代码示例可以完成上述两行代码的工作。来自 perldoc chomp:
chomp 用于在输入记录的末尾删除换行符,以防止最后一条记录缺少换行符。
当处于段落模式 ($/ = "")
时,它会从字符串中删除所有尾随的换行符。当处于 slurp 模式 ($/ = undef
) 或固定长度记录模式 ($/
是整数或类似物的引用,请参见 perlvar) 时,chomp() 不会删除任何内容。
您可以像这样从字符串中删除前导和尾随的空格:
$string =~ s{^\s+|\s+$}{}g
Chomp函数可以去除字符串末尾的换行符,但不会删除空格。典型的修剪函数使用以下两个替换行:
$string =~ s/^\s+//;
$string =~ s/\s+$//;
第一行代码可以去掉字符串前面的空格,而第二行则可以去掉字符串后面的空格。