无法在lib文件夹Spreadsheet :: WriteExcel和DBI中找到模块,尽管它们存在

时间:2017-08-04 15:15:20

标签: perl

如何检查我的Perl中是否有Spreadsheet :: WriteExcel?

我跑了

  perldoc -v Spreadsheet::WriteExcel 

并获得以下输出,表明我的perl上没有Spreadsheet :: WriteExcel

/usr/local/bin/perldoc => Pod::Perldoc v3.13

Formatter class Pod::Perldoc::ToMan successfully loaded!
Will format with the class Pod::Perldoc::ToMan
Searching for Spreadsheet::WriteExcel
Looking for Spreadsheet/WriteExcel in /opt/SYSperl/bin /opt/SYSperl/lib/5.8.6/sun4-solaris /opt/SYSperl/lib/5.8.6 /opt/SYSperl/lib/site_perl/5.8.6/sun4-solaris /opt/SYSperl/lib/site_perl/5.8.6 /opt/SYSperl/lib/site_perl . /opt/pgti/ixp/bin /opt/pgti/ixp/bin /opt/pgti/ixp/bin /opt/CA/uajm/elp/autosys/bin /usr/openwin/bin /usr/bin /usr/ccs/bin /usr/local/bin /opt/RFMadmin/exe /opt/RFMadmin/bin . /apps/risk/bin
No documentation found for "Spreadsheet::WriteExcel".

但是我看到了一个使用下线和其他功能的代码,在我的系统上工作正常

$workbook = Spreadsheet::WriteExcel->new($file);`enter code here`

2 个答案:

答案 0 :(得分:3)

您的系统上可能有多个perl版本,每个版本都会在不同的位置显示,并且具有不同的已安装模块集。

使用与您的代码相同的perl解释器,您应该能够验证它是否存在:

/path-to-that-perl/perl -le'use Spreadsheet::WriteExcel; print $INC{"Spreadsheet/WriteExcel.pm"}'

还应该有一个perldoc安装在那里,它们将在相同的位置:

/path-to-that-perl/perldoc -lm Spreadsheet::WriteExcel

有问题的代码也可能(尽管不太可能)向@INC添加额外的目录,这些目录通过-I开关,use lib,{{}来说明perl将查找模块的位置。 1}}环境变量,sitecustomize脚本,或直接修改PERL*

答案 1 :(得分:1)

运行perl -e "use Spreadsheet::WriteExcel" 如果已安装,则不会出现错误。