我想这会很简单。我有两个数组,我想打印一个句子,从这些数组中的数字到一个文件中。我试了一下:
chomp $array1[$x];
chomp $array2[$x];
print FILE "Number1: $array1[$x] \& Number2: $array2[$x] Some Words\n";
字符串
这给了我:
Number1: 0
& Number2: 87.3
Some Words
型
(这里的数字只是例子)。
你知道为什么会这样吗?我试过
$array1[$x] =~ s/\n//g;
$array2[$x] =~ s/\n//g;
型
但是它并没有修复任何问题。另外,如果我显式地将这些额外的换行符放入,就像这样:
print FILE "Number1: $array1[$x]\n \& Number2: $array2[$x]\n Some Words\n"
型
我得到了相同的输出,所以不需要的换行符不再被添加。为什么?
1条答案
按热度按时间mhd8tkvw1#
由于该文件是在Windows上创建的,它可能有
CRLF
(即\r\n
)行终止,而不仅仅是LF
。chomp
默认情况下只删除LF
。此行将删除
CR
前面带有 optional 的LF
:字符串
或者,将
$/
(默认的“输入记录分隔符”)更改为包含\r\n
,此时chomp
应该正确地剥离两者。