Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 当我将一个文件读入数组并打印它时,为什么在第一行之后的每行开头都有额外的空白?_Perl - Fatal编程技术网

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

Perl 当我将一个文件读入数组并打印它时,为什么在第一行之后的每行开头都有额外的空白?,perl,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.0616834

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

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

是什么原因导致此问题以及如何解决此问题?

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

print @file, "\n";
出现问题的原因是,当插入数组
“@file\n”
时,它等效于以下内容:

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

在中搜索
$LIST\u SEPARATOR
以获取更多信息。

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

print @file, "\n";
出现问题的原因是,当插入数组
“@file\n”
时,它等效于以下内容:

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

在中搜索
$LIST\u SEPARATOR
以获取更多信息。

这种情况会发生,因为当您打印插入的
@array
时,例如在双引号
“@arr”
内,perl会在数组元素之间放置一个分隔符。默认值为空格。它出现在第二行,因为数组
@file
的元素也包含
\n
字符。这是因为当您打印插值
@array
时,例如在双引号
“@arr”
内,perl会在数组元素之间放置分隔符。默认值为空格。它出现在第二行,因为数组
@file
的元素也包含
\n
字符answer@AymanSalah该评论是对另一个人的评论的回复,该评论已被删除。我的回复也被删除了。有什么问题answer@AymanSalah该评论是对另一个人的评论的回复,该评论已被删除。也删除了我的回复。