5

我正在阅读一个名为mention-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;
4

1 回答 1

10

错误是您正在打印@a和换行符的串联。当你连接时,这会强制标量上下文。数组的标量意义不是它的内容,而是它的元素计数。

你只想

 print "@a\n";

反而。

此外,虽然它不会影响您的代码,但删除<>readline 运算符读入的记录终止符的正常方法是使用chomp

chomp $line;
于 2013-08-05T00:49:22.210 回答