Perl blixtor 来自评论的建议我正在移动我在问题中的“编辑更新”来回答我自己的问题:
这里的大部分功劳归功于 Andrew Barnett,两个关键问题是
- 本机 C 代码库
- perl LIB 路径
以下是我为使 cygwin 创建的 par 在 HPUX 上运行所遵循的步骤,我相信在任何 unix 上的步骤应该大致相同:
遵循 Andrew 的建议并使用pp -X IO::Socket开关删除了 IO::Socket ,但随后在 unix 上运行生成的 parl 我得到了一些修改但仍然相关错误:
Can't locate Socket.pm in @INC (@INC contains: CODE(0x406ab018) CODE(0x4055c880) CODE(0x40563978)) at Net/Config.pm line 11
即使在 unix 上运行“perl -MCPAN -e shell”显示 Socket 应该已安装并且是最新的:
cpan[2]> install IO::Socket
IO::Socket is up to date (1.30_01).
因此,除了使用 -X 开关排除 Socket 之外,我还必须在 HPUX 上创建一个包装脚本,其中只有这 1 行,wrapper.pl:
use PAR { file => 'bdiff.par', run => 'bdiff.pl' };
然后要运行它,我没有使用 parl,而是只用 perl 调用它,我必须使用 -I 开关将整个路径提供到默认 lib 路径,如下所示:
perl -I/lib/perl5/lib/5.10.0/PA-RISC2.0 -I/lib/lib/site_perl wrapper.pl allparameters
由于某种原因,在使用 parl 时,似乎默认的 lib 路径被排除在外,因此上面的完整路径。