我认为这很简单。我有两个数组,我想用这些数组中的数字打印一个句子到一个文件中。我试过这个:
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"
我得到相同的输出,因此不再添加不需要的换行符。为什么呢?
答案 0 :(得分:0)
由于文件是在Windows上创建的,因此可能会CRLF
(即\r\n
)行终止,而不仅仅是LF
。默认情况下,chomp
只会移除LF
。
此行将删除LF
前面带有可选的CR
:
$array1[$x] =~ s/\r?\n//;
或者,更改$/
(默认的“输入记录分隔符”)以包含\r\n
,此时chomp
应正确删除两者。