当我将文件读入数组并打印出来时,为什么在第一行之后每行的开头有一个额外的空格?

时间:2014-09-04 19:18:57

标签: perl

我正在将文件读入数组并打印如下内容:

open (FILE, "ans.txt");
@file = <FILE>;
print "@file\n"; 

该文件如下所示:

51.5440622646247 - 31.2571428571429
51.5440622646247 - 48.0616834439923

但是输出在第一行之后的每一行的开头有一个额外的空格:

51.5440622646247 - 31.2571428571429
 51.5440622646247 - 48.0616834439923

导致此问题的原因以及如何解决?

1 个答案:

答案 0 :(得分:4)

将文件行作为列表传递给print,而不是在字符串中插入:

print @file, "\n";

出现问题是因为当您插入数组"@file\n"时,它等同于以下内容:

print join($", @file) . "\n";

perlvar中搜索$LIST_SEPARATOR以获取更多信息。