PAR :: Packer如何工作?

Sto*_*boy 4 perl executable exe

我正在使用PAR :: Packer,这个问题出现在我的脑海里.PAR :: Packer如何在Perl中工作?它是否真的将Perl脚本编译为.exe,就像g ++将C++源代码编译为.exe一样,还是像Python中的py2exe一样将解释器和脚本打包成.exe?

amo*_*mon 8

为了使这个绝对清楚:

  • 类似的工具PAR::Packer不要"编译"你的Perl脚本.它们将perl解释器与源文件和任何所需的模块捆绑在一个大的可执行文件中.当它运行时,原始源被提取并送入封闭的perl.

    这种方法运行得相当好,但不会提高速度(相反......).该唯一的好处是,你可以发布你的程序作为一个单一的(尽管相当大的)文件,无依赖性.

  • 有一个非常实验性的工具perlcc,它能够将一些Perl程序转换为C或Perl字节码序列化.正如文档所说:

    以这种方式生成的代码无法保证正常工作.整个codegen套件(包括perlcc)应该被认为是非常实验性的.强烈建议不要将其用于生产目的.

    这是因为Perl语言不支持静态编译.它需要能够在解析主要执行阶段的同一会话期间的某些动态功能期间执行代码.

还有其他商业工具,通常与PAR :: Packer属于同一类别(创建胖可执行文件).

简介:如果您需要单个可执行文件,请使用PAR :: Packer.如果你想要速度,内联一些C(或使用XS).没有工具可以将所有Perl脚本编译为机器代码.