如何使用perl将行读入数组

时间:2013-07-19 10:18:43

标签: perl

我第一次使用perl。我试图从输入文件中读取一行并将其存储在一个数组中。请注意,输入文件包含一行包含大量单词。

我尝试使用以下代码:

open input, "query";
my @context = <input>;

但这会产生语法错误。我怎么能解决这个问题?

2 个答案:

答案 0 :(得分:4)

它没有给出语法错误。如果只有一条线,它甚至可以正常工作。即使存在多个行,以下内容也只会获得第一行:

my @context = scalar( <input> );

但你为什么不这么做呢

my $context = <input>;

答案 1 :(得分:3)

语法错误是什么?恕我直言,它没有写。但我会建议一些改进

  1. 始终使用use strict; use warnings;作为第一行!它有助于发现许多可能的问题。
  2. 代码没有错误处理。
  3. 为文件处理程序使用变量。不推荐使用bareword
  4. 如果您只需要从文件中读取,请打开文件进行阅读。
  5. 可能会从数组中删除结束换行符。
  6. 如果文件不需要保持打开,则值得关闭它。这不是必需的,因为exit会隐式自动关闭它,但是显式关闭文件是一个好习惯。
  7. 所以它可能是:

    #!/usr/bin/perl
    
    use strict;
    use warnings;
    
    open my $input, "<infile" or die "$!";
    my @context = map { chomp; $_;} <$input>;
    close $input;