我有一个文本文件,其内容如下:
a b
c
我使用以下 Perl 代码在输入行中出现空格字符的位置替换下划线"-"字符:
while (<>) {
$_ =~ s/s/_/;
print $_;
}
我得到这样的输出:
a_b
c_
所以我的问题是为什么 Perl 也替换下划线来代替换行符 '' char,这从包含"c"的输入行中很明显?当我在代码中使用 chomp 时,它按预期工作。
>s
匹配所有空格字符[ trnf]
,因此如果要替换纯空格,请使用空格
$_ =~ s/ /_/g;
# or just
s/ /_/g;
翻译也可以用于这种简单的替换,例如。 tr/ /_/;