【发布时间】:2014-05-03 21:55:37
【问题描述】:
我在 Perl 脚本中有一个子例程,它打开一个 csv 文件并将值读入哈希表。该脚本当前在 Windows 2003 服务器上运行没有问题。我试图让脚本在 Windows 2008 R2 服务器上运行。当我在 R2 上运行脚本时,它失败并出现以下错误:Can't locate object method "getLine" via package "C:\file\test.csv" (也许你忘记加载 "C:\file\test .csv)
我正在从包含 Perl 脚本和 csv 文件的目录中的命令行运行脚本。我可以使用 move() 函数重命名 csv 文件。显然,正在找到 csv 文件,只是没有被读取。
sub csv_file_hashref {
my ($filename) = @_;
my $csv_fh = IO::File->new($filename, 'r');
my $csv = Text::CSV_XS->new ();
my %output_hash;
while(my $colref = $csv->getline ($filename))
{
$output_hash{shift @{$colref}} = $colref;
}
return \%output_hash; # return a reference to the hash
}
我已确认包含完整目录的正确文件名在 $filename 中。我还确保安装了 IO::File 模块。为什么这段代码打不开csv文件?
谢谢, 亚历克斯
【问题讨论】:
标签: perl perl-module