[Perl Other] perl打包成一个文件的建议

Nov 5th, 2009

转载本站文章请注明,转载自:扶凯[http://www.php-oa.com]

本文链接: http://www.php-oa.com/2009/11/05/perl-par-packer.html

近来为公司写一个程序需要跑在公司几k的服务器,因为担心有问题测试了无数次.最后还是要上线之前,还是坚持拿到线上测试一下,看看有没有问题,果然,给Perl做成rpm包后.还是有些小问题..还好坚持做完所有的测试.

有什么问题啦?这些问题主要是由于pp打包后产生的(pp -c -o Get Get.pl).我们都知道Perl中有个超级好的模块,叫PAR::Packer.这个可以给Perl写的程度打包成一个程序,这样在别的机器上就不用安装.它相当于一个perl捆绑机..哈哈..

写的程序出了什么问题啦?

在测试的过程中,我怎么感觉都没有问题了,后来发现提示二个错,第一个.

1.任务xml解析时出错 Can’t locate object method "new" via package "XML::LibXML::SAX" at XML/SAX/ParserFactory.pm line 43.

这个主要是因为我使用了二个xml解析和写xml的软件,如下,大多pp打包只要显示的use一下就行了

use XML::Simple;
use XML::Writer;

修复

use XML::Simple;
use XML::Writer;
use XML::LibXML::SAX;

2.Unknown encoding ‘gb2312′ at script/ccTAd.pl line 395

提示没有gb2312.因为我使用了Encode 这个模块.所以如上,也需要显示的加入中文的Encode不然打包会出问题.

use Encode;
use Encode::CN;

 

总结:1.打包时,要注意动态加载的模块,需要显示的use.2.多测试,多测试

 

PP 命令的使用

PP来生成PAR文件(相当于JAVA的JAR文件,可用RAR打开来查看),PAR里包含了可运行脚本及其依赖,然后用PARL来运行PAR里的可运行 脚本:
"pp -p -B -I ./src -o ./ebnms.par ./test/test_svr/start_svr.pl ./src/scp.pl"
-p 生成PAR
-B 将各种依赖项打进去
-I 加入到@INC
-o 生成的文件名

 

Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪 ViVi 365Key 网摘 天极网摘 和讯网摘 博拉网 POCO 网摘 饭否 QQ 书签 Digbuzz 我挖网 Mister Wong
No comments yet.