【发布时间】:2009-09-14 22:16:52
【问题描述】:
我目前正在使用 PAR Packer (pp) 打包几个 pl 脚本,这样它们就可以被复制到一台机器上并“正常工作”,而我的客户不必使用 CPAN。
不幸的是,PAR Packer 不适用于深度依赖。例如,脚本导入 CHI::Driver::File 但没有显式导入 CHI::Driver::File 所需的 Log::Any::Adapter::Null。 PAR 不选择此依赖项,运行生成的脚本将崩溃并显示以下错误消息:
Can't locate Log/Any/Adapter/Null.pm in @INC (@INC contains: CODE(0x874aab8) /tmp/par-apache/cache-7b4508ab92efb43271da1629e8eb654c1572cc55/inc/lib /tmp/par-apache/cache-7b4508ab92efb43271da1629e8eb654c1572cc55/inc CODE(0x87e8f54) CODE(0x87e9194)) at (eval 215) line 3.
Compilation failed in require at CHI/Driver/File.pm line 11.
BEGIN failed--compilation aborted at CHI/Driver/File.pm line 11.
我的解决方法是显式导入“Log::Any::Adapter::Null”,但必须有更好的方法。也许这是 PAR Packer 的一个错误?我已经安装了最新版本(0.994)。
【问题讨论】:
-
描述你使用哪些命令行选项来构建包。
-
我正在使用脚本将每个 pl 文件单独编译成 cgi。我使用以下命令行参数:-I -X 和 -o
标签: perl par perl-packager