我有一个数据文件,每行包含一个数字。我试图将此文件读入数组。这是我写的脚本:
#!/usr/bin/perl -w
$file1 = '/home/usr1/test.list';
open(FILEC, $file1);
my @cArray = FILEC;
close FILEC;
print @cArray;
但是在执行此文件后,没有打印出任何内容?我检查了输入test.list,它位于正确的位置。可能是什么原因?
答案 0 :(得分:3)
您错过了<>
(线路)运营商:
my @cArray = <FILEC>;
应该有所帮助。
答案 1 :(得分:1)
FatalError是正确的,你需要一个readline运算符。您可以在perldoc perlop
中详细了解<>
以及perldoc -f readline
中readline
函数的更多内容。
一旦掌握了这些知识,您就会明白为什么以下内容也可以起作用(尽管可能不建议您阅读)。另外,我将使用Data::Dumper
打印更好的@cArray
表示。
#!/usr/bin/env perl
use strict;
use warnings;
use Data::Dumper;
@ARGV = qw( /home/usr1/test.list );
# or remove previous line and call script as
# script.pl /home/usr1/test.list
my @cArray = <>;
print Dumper \@cArray;
进一步说明:你的意志的更现代版本:
open
use strict
以及use warnings
(而不是-w
)给
#!/usr/bin/env perl
use strict;
use warnings;
my $file1 = '/home/usr1/test.list';
open(my $handle, '<', $file1)
or die "Could not open $file1: $!";
my @cArray = <$handle>;
print @cArray;