我正在阅读一个名为remin-freq的文本文件,其中包含以下格式的数据:
1
1
13
2
我想读取行并将值存储在这样的数组中:@a=(1, 1, 13, 2)
。 Perl push函数给出索引值/行号,即1,2,3,4,而不是我想要的输出。你能指出错误吗?这就是我所做的:
use strict;
use warnings;
open(FH, "<mention-freq") || die "$!";
my @a;
my $line;
while ($line = <FH>)
{
$line =~ s/\n//;
push @a, $line;
print @a."\n";
}
close FH;
答案 0 :(得分:10)
错误是您正在打印@a
和换行符的串联。连接时,会强制标量上下文。数组的标量意义不是它的内容,而是它的元素数。
你只想要
print "@a\n";
代替。
此外,虽然它不会影响您的代码,但删除<>
readline运算符读取的记录终结符的正常方法是使用chomp
:
chomp $line;