2011-01-10 95 views
-2

上午刚开始导出excel电子表格中PERL工作启用的Excel插件,如何检查,在PERL

开始之前,我想确认,也就是说,它是excel电子表格realted插头启用与否,

奉劝一些简单的Perl语法,

感谢

+5

PERL不是首字母缩略词 - 你的意思是Perl :) – 2011-01-10 04:52:43

回答

2

如果您使用的是模块从CPAN如Excel::Writer::XLSX那么你可以只使用一个简单的脚本来测试是否安装该模块:

#!/usr/bin/perl 
use Excel::Writer::XLSX; 

并运行该脚本。你会得到一个错误约

Can't locate Excel/Writer/XLSX.pm in @INC 

如果模块没有安装在您的系统上。

+2

如果这就是你想要的,那么你甚至不需要脚本。只需在命令行输入“perl -MExcel :: Writer :: XLSX”就可以得到你想要的东西。 – 2011-01-10 09:23:39

2

如果通过“excel插件”,你的意思是一个CPAN模块,那么解决方案是尝试加载它,看看会发生什么。如果你将加载尝试包装在“eval”语句中,那么如果程序失败,你的程序不会死。

事情是这样的:

eval 'use Spreadsheet::ParseExcel'; 

my $have_module = ! [email protected]; 

这种方法,因为我只是想看看是否$ @已被赋予了价值一点点不精确。要获得更多控制权,您可能需要检查$ @的内容以获取特定的错误消息。你正在寻找一个开始“找不到...”的人。

+0

当只检查成功时,我喜欢直接使用eval的返回值:`my $ have_module = eval {require Spreadsheet :: ParseExcel};`那么你不必为`$ @`或其任何边缘情况。 – 2011-01-10 19:36:35

0

假设你的意思是:

如何我可以告诉大家,如果从我的web服务器传送到浏览器的Excel文档将在浏览器插件打开(而不是被保存或在一个独立的应用程序打开的)?

然后你不能。浏览器不会将这些信息发送到服务器,所以没有服务器端进程(用Perl或其他语言编写)可以告诉。

0
perl -MExcel::Writer::XLSX -e "print 'ok'" 

如果打印出'ok',那么你很好。如果你得到can't locate ... in @INC那么你需要安装它。

相关问题