【发布时间】:2010-11-17 06:16:06
【问题描述】:
我有一个.pl 文件,我想在任何系统中执行该文件,即使没有安装perl。我怎样才能实现它?
有什么好的例子可以做到这一点?
【问题讨论】:
标签: perl
我有一个.pl 文件,我想在任何系统中执行该文件,即使没有安装perl。我怎样才能实现它?
有什么好的例子可以做到这一点?
【问题讨论】:
标签: 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 的草莓 Perl 或安装的 ActivePerl 和 MSVC:
cpan -i PAR::Packer
使用pp 打包。它将在 Windows 上创建一个名为“example”或“example.exe”的可执行文件。
pp -o example example.pl
这仅适用于构建它的操作系统。
附注真的很难找到没有 Perl 的 Unix 克隆。你是说 Windows 吗?
【讨论】:
-i 是隐含的。 MAN PAGE:-i ... Install the specified modules. With no other switches, this switch is implied. 答案中的另一个好的经验法则:不要在没有解释它们的作用的情况下在答案中抛出标志和参数。
来自perlfaq3对How can I compile my Perl program into byte code or C?的回复:
(由布赖恩·德·福伊提供)
一般情况下,您不能这样做。不过,有些事情可能对您的情况有用。人们通常会问这个问题,因为他们希望在不泄露源代码的情况下分发他们的作品,并且大多数解决方案都会为了方便而交换磁盘空间。您可能也不会看到速度有多少提高,因为大多数解决方案只是在最终产品中捆绑了一个 Perl 解释器(但请参阅如何使我的 Perl 程序运行得更快?)。
Perl 存档工具包 (http://par.perl.org/) 是 Perl 对 Java 的 JAR 的模拟。它在 CPAN (http://search.cpan.org/dist/PAR/) 上免费提供。
也有一些商业产品可能适合您,但您必须为它们购买许可证。
来自 ActiveState 的 Perl 开发工具包 (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 生态系统。
【讨论】:
Perl 文件是脚本,而不是可执行程序。因此,为了让他们“运行”,他们将需要一个解释器。
所以,您有两个选择: 1) 在您希望运行脚本的机器上安装解释器,或者 2) 让脚本在您远程连接(即使用浏览器)的联网(或 Internet)机器上运行
【讨论】:
在 Mac OS X 上可能有 perlcc。键入 man perlcc。在我的系统 (10.6.8) 上,它位于 /usr/bin 中。您的里程可能会有所不同。
【讨论】: