我在Perl脚本中有一个子例程,它打开一个csv文件并将值读入散列表。该脚本当前在Windows 2003服务器上运行时没有问题。我试图让脚本在Windows 2008 R2服务器上运行。当我在R2上运行脚本时,它失败,出现以下错误:无法通过软件包“C:\ file \ test.csv”找到对象方法“getLine”(也许您忘记加载“C:\ file \ test .csv)Perl脚本无法加载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
}
我已经证实,有完整的目录正确的文件名是在$文件名。我ALOS确保了IO ::文件模块安装。为什么赢了此代码是否打开csv文件?
谢谢, 亚历克斯
这行不符合OP的意图:'$ output_hash {$ row - > [0]} = $ row - > [1];'。看起来她有一个价值清单,第一个是关键 – Miller