我有一个.pl
文件,即使没有安装perl
,我也想在任何系统中执行该文件。我该怎么做?
有哪些好的示例可以实现这一点?
我有一个.pl
文件,即使没有安装perl
,我也想在任何系统中执行该文件。我该怎么做?
有哪些好的示例可以实现这一点?
pp可以创建一个包括Perl和脚本(以及任何模块依赖项)的可执行文件,但它将特定于您的体系结构,因此您无法在Windows和Linux上运行它。
根据其文档:
要创建独立的可执行文件,适用于在没有安装Perl的计算机上运行:
(%和$是不同机器上的命令提示符。)% pp -o packed.exe source.pl # makes packed.exe # Now, deploy 'packed.exe' to target machine... $ packed.exe # run it
安装PAR::Packer
。*nix示例:
sudo cpan -i PAR::Packer
对于Windows中的Strawberry Perl或已安装MSVC的ActivePerl:
cpan -i PAR::Packer
使用pp
打包。它将在Windows上创建一个名为“example”或“example.exe”的可执行文件。
pp -o example example.pl
这仅适用于构建它的操作系统。
P.S. 很难找到没有Perl的Unix克隆版。你是想说Windows吗?
-i
是隐含的。MAN PAGE:-i ... 安装指定的模块。如果没有其他开关,则隐含此开关。
在回答中还有一个好的经验法则:不要在回答中抛出标志和参数而不解释它们的作用。 - B. Shea来自perlfaq3的答案,关于如何将我的Perl程序编译成字节码或C语言?:
(由brian d Foy贡献)
通常情况下,你做不到这一点。但是对于你的情况,有一些可能奏效的方法。人们通常问这个问题是因为他们想在不公开源代码的情况下分发他们的作品,而大多数解决方案是以牺牲磁盘空间为代价来换取便利性的。你可能也不会看到很大的速度提升,因为大多数解决方案只是在最终产品中捆绑了Perl解释器(但请参见如何使我的Perl程序运行更快?)。
Perl档案工具包 ( http://par.perl.org/ ) 是Perl对Java JAR的类比。它是免费提供的,并可在CPAN上获得 ( http://search.cpan.org/dist/PAR/ )。
此外还有一些商业产品可能适合您,尽管您必须购买许可证。
ActiveState的Perl Dev Kit ( http://www.activestate.com/Products/Perl_Dev_Kit/ ) 可以“将您的Perl程序转换为适用于HP-UX、Linux、Solaris和Windows的即用型可执行文件。”
Perl2Exe(http://www.indigostar.com/perl2exe.htm)是一个命令行程序,用于将perl脚本转换为可执行文件。它支持Windows和Unix平台。不要忘记 ActiveState's PDK。它可以帮助你编译UI、命令行、Windows服务和安装程序。
我强烈推荐它,多年来一直为我服务得非常好,但需要花费约300美元购买许可证。
Cava Packager 在 Windows 生态系统上表现很不错。