【发布时间】:2017-08-20 22:44:00
【问题描述】:
如何检查 Spreadsheet::WriteExcel 在我的 Perl 中是否可用?
我跑了
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`
【问题讨论】:
-
检查是否已安装的最简单方法是运行
$ perl -MSpreadsheet::WriteExcel\ 999。它要么抱怨它不能加载它,要么抱怨它不能加载版本 999,然后告诉你它有哪个版本。注意反斜杠后面的空格。 -
我很确定我已经看到带有
VERSION数字的模块作为某种形式的日期,类似于“2016_12_04”,这不会抱怨。我使用你上面提到的方法,但多了一堆 9。 -
@SinanÜnür 是的,这样可以节省一个丑陋的角色。 :)
-
@SinanÜnür
=更容易出错,因为它仅在模块的 import() 函数在看到版本时进行版本检查时才有效(如 Exporter 所做的那样)。空格让Perl除了import之外还要调用VERSION,这是最正确的做法 -
@ysth 谢谢指正。
标签: perl