我正在使用 PAR::Packer,这个问题突然出现在我的脑海中。 PAR::Packer 在 Perl 中如何工作?真的吗compilePerl 脚本到 .exe 就像 g++ 将 C++ 源代码编译到 .exe 一样,还是像 Python 中的 py2exe 一样工作,将解释器和脚本打包到 .exe 中?
为了绝对清楚地说明这一点:
-
类似的工具PAR::Packer https://metacpan.org/module/pp不要“编译”你的 Perl 脚本。他们将 perl 解释器与源文件和任何所需的模块捆绑在一起,形成一个庞大的可执行文件。当它运行时,原始源代码被提取并提供给附带的 perl。
这工作得相当好,但并没有提高速度(相反......)。这only优点是您可以将程序作为单个(尽管相当大)文件分发,而无需依赖项。
-
有一个非常实验性的工具,叫做perlcc
它能够将一些 Perl 程序转换为 C 或 Perl 字节码序列化。作为the docs https://metacpan.org/module/perlcc put it:
不保证以这种方式生成的代码能够工作。应考虑整个 codegen 套件(包括 perlcc)very实验性的。强烈建议不要将其用于生产目的。
这是因为Perl语言不支持静态编译。它需要能够在主执行阶段发生的同一会话期间解析某些动态功能期间执行代码。
还有其他商业工具,通常与 PAR::Packer(创建胖可执行文件)属于同一类别。
摘要:如果您想要单个可执行文件,请使用 PAR::Packer。如果您想要速度,请内联一些 C (或使用 XS)。没有任何工具可以将所有 Perl 脚本编译为机器代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)