如何编译我的Perl脚本,以便可以在没有安装perl的系统上执行?

时间:2009-08-06 06:37:15

标签: perl

我有一个.pl文件,我想在任何系统中执行该文件,即使未安装perl。我怎样才能实现它?

任何人都可以通过一些好的例子让我知道吗?

9 个答案:

答案 0 :(得分:42)

pp可以创建一个包含perl和您的脚本(以及任何模块依赖项)的可执行文件,但它将特定于您的体系结构,因此您无法在Windows和Linux上运行它。 / p>

来自其文档:

  

制作独立的可执行文件,适合在未安装perl的计算机上运行:

   % pp -o packed.exe source.pl        # makes packed.exe
   # Now, deploy 'packed.exe' to target machine...
   $ packed.exe                        # run it

(%和$在不同的机器上有命令提示符。)

答案 1 :(得分:26)

  1. 安装PAR::Packer。 * nix的示例:

    sudo cpan -i PAR::Packer

    适用于Windows的Strawberry Perl或安装的ActivePerl和MSVC:

    cpan -i PAR::Packer
  2. 将其与pp打包在一起。它将在Windows上创建名为“example”或“example.exe”的可执行文件。

    pp -o example example.pl
  3. 这只适用于构建它的操作系统。

    P.S。没有Perl很难找到Unix克隆。你的意思是Windows?

答案 2 :(得分:8)

perlfaq3回答How can I compile my Perl program into byte code or C?


(由brian d foy提供)

一般情况下,你不能这样做。有些事情可能对你的情况有用。人们通常会问这个问题,因为他们希望在不泄露源代码的情况下分发他们的作品,大多数解决方案都是为了方便而交换磁盘空间您可能也不会看到太多的速度提升,因为大多数解决方案只是在最终产品中捆绑了一个Perl解释器(但是请参阅如何让我的Perl程序运行得更快?)。

Perl Archive Toolkit(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平台。

答案 3 :(得分:7)

查看PAR(Perl Archiving Toolkit)。

  PAR是一个跨平台的包装和   部署工具,称为十字架   在Java的JAR和之间   Perl2EXE / PerlApp

答案 4 :(得分:6)

让我们不要忘记ActiveState's PDK。它将允许您编译UI,命令行,Windows服务和安装程序。

我强烈推荐它,多年来它一直很好用,但许可证大约300美元。

答案 5 :(得分:5)

对Sinan和brian的注意:perlfaq3仍然是错误的。

请参阅http://search.cpan.org/dist/B-C/perlcompile.pod

答案 6 :(得分:3)

Cava Packager非常适合Windows生态系统。

答案 7 :(得分:1)

Perl文件是脚本,而不是可执行程序。因此,为了让他们“奔跑”,他们将需要一名翻译。

所以,你有两个选择: 1)在机器上安装要运行脚本的解释器,或者 2)让脚本在远程连接的网络(或Internet)计算机上运行(即使用浏览器)

答案 8 :(得分:0)

在MaxOSX上可能有 perlcc 。输入 man perlcc 。在我的系统(10.6.8)上,它位于/ usr / bin中。 YMMV

请参阅http://search.cpan.org/~nwclark/perl-5.8.9/utils/perlcc.PL