0

我是第一次使用 perl。我正在尝试从输入文件中读取一行并将其存储在一个数组中。请注意,输入文件包含带有一堆单词的单行。

我尝试使用以下代码:

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

但这会产生语法错误。我该如何解决这个问题?

4

2 回答 2

4

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

my @context = scalar( <input> );

但你为什么不做

my $context = <input>;
于 2013-07-19T10:25:36.427 回答
3

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

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

所以它可能是:

#!/usr/bin/perl

use strict;
use warnings;

open my $input, "<infile" or die "$!";
my @context = map { chomp; $_;} <$input>;
close $input;
于 2013-07-19T10:37:46.417 回答