我有以下代码:
open INPUT, "input.txt";
my $line = "";
while (<INPUT>)
{
$line = $_;
$line =~ s/\s+^//;
print $line;
}
但输出仍包含所有换行符。我还尝试了\v
和\R
。
答案 0 :(得分:2)
/\s+^/
表示&#34; 字符串&#34;之前的一个或多个空格字符; - 所以它永远不会匹配。
如果您的目标是移除尾随空格字符,那么您需要$
而不是^
:
$line =~ s/\s+$//;
(如果您的目标只是删除尾随换行符,那么您应该使用the built-in chomp
function。)