Como posso compilar meu script Perl para que ele possa ser executado em sistemas sem o perl instalado?

Eu tenho um arquivo .pl e quero executar esse arquivo em qualquer sistema, mesmo que o perl não esteja instalado. Como posso conseguir isso?

Alguém pode me informar com alguns bons exemplos para fazer isso?

pp pode criar um executável que inclua perl e seu script (e qualquer dependência de módulo), mas ele será específico para sua arquitetura, portanto você não pode executá-lo no Windows e no Linux, por exemplo.

Do seu doc:

Para tornar um executável independente, adequado para execução em uma máquina que não possui o perl instalado:

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

(% e $ existem comandos em diferentes máquinas).

  1. Instale PAR::Packer . Exemplo para * nix:

      sudo cpan -i PAR :: Packer 

    Para Strawberry Perl para Windows ou para ActivePerl e MSVC instalado:

      cpan -i PAR :: Packer 
  2. Embale com pp . Ele irá criar um executável chamado “exemplo” ou “exemplo.exe” no Windows.

      pp -o example example.pl 

Isso funcionaria apenas no sistema operacional onde foi construído.

PS É realmente difícil encontrar um clone do Unix sem o Perl. Você quis dizer Windows?

Veja o PAR (Perl Archiving Toolkit).

O PAR é uma ferramenta de Empacotamento e Implantação de Várias Plataformas, apelidado de um cruzamento entre o JAR do Java e o Perl2EXE / PerlApp .

Da resposta de perlfaq3 a Como posso compilar meu programa Perl em código de byte ou C? :


(contribuído por brian d foy)

Em geral, você não pode fazer isso. Existem algumas coisas que podem funcionar para sua situação. As pessoas costumam fazer essa pergunta porque querem distribuir seus trabalhos sem distribuir o código-fonte, e a maioria das soluções negocia o espaço em disco por conveniência. Você provavelmente não verá grande aumento de velocidade também, já que a maioria das soluções simplesmente agrupa um interpretador Perl no produto final (mas veja Como posso fazer meu programa Perl rodar mais rápido?).

O Perl Archive Toolkit ( http://par.perl.org/ ) é o analógico de Perl para o JAR do Java. Está disponível gratuitamente e no CPAN ( http://search.cpan.org/dist/PAR/ ).

Existem também alguns produtos comerciais que podem funcionar para você, embora você tenha que comprar uma licença para eles.

O Perl Dev Kit ( http://www.activestate.com/Products/Perl_Dev_Kit/ ) da ActiveState pode “Transformar seus programas Perl em executáveis ​​prontos para execução para HP-UX, Linux, Solaris e Windows.”

O Perl2Exe ( http://www.indigostar.com/perl2exe.htm ) é um programa de linha de comando para converter scripts perl em arquivos executáveis. Ele atinge as plataformas Windows e Unix.

E não vamos esquecer o PDK da ActiveState . Ele permitirá que você compile a interface do usuário, a linha de comando, os serviços do Windows e os instaladores.

Eu recomendo, tem me servido muito bem ao longo dos anos, mas é cerca de 300 dólares para uma licença.

Nota para Sinan e brian: perlfaq3 ainda está errado.

Veja http://search.cpan.org/dist/BC/perlcompile.pod

O Cava Packager é ótimo no ecossistema do Windows.

Arquivos Perl são scripts, não programas executáveis. Portanto, para eles “correrem”, precisarão de um intérprete.

Portanto, você tem duas opções: 1) Ter o interpretador na máquina que você deseja executar o script ou 2) Ter o script sendo executado em uma máquina em rede (ou Internet) à qual você se conecta remotamente (ou seja, com um navegador)

No MaxOSX pode haver perlcc . Digite man perlcc . No meu sistema (10.6.8) está em / usr / bin. YMMV

Veja http://search.cpan.org/~nwclark/perl-5.8.9/utils/perlcc.PL