PAR で Perl スクリプトを exe 化する(ActivePerl 5.12.2 編)


もう 3 回目になるが、Perl スクリプトを exe 化する方法について。Perl が 5.12.2 にアップデートしたのでまとめてみた。

PARでPerlスクリプトをexe化 @ ActivePerl 5.10.1 build 1007
http://blog.remora.cx/2010/02/par-activeperl-5101-build-1007.html

ActivePerl 5.12 で PAR::Packer をインストール
http://blog.remora.cx/2010/04/install-par-packer-on-activeperl-5120.html

必要モジュールのインストール

まずは、PPM(Perl Package Manager)を使って必要なモジュール(+α)をインストールする。


2010-09-14_132339.png

  • Win32::Exe
  • Parse::Binary
  • Getopt::Argvfile
  • PAR
  • PAR::Dist
  • dmake
  • MinGW

前回このリストに並べていた Module::ScanDeps がここにない。最終目標となる PAR::Packer のインストールには Module::ScanDeps のバージョン 0.98 以上が必要なのだが、現在 PPM 上には 0.97 しかおいてないのだ。

また、最後の 2 行に dmakeMinGW を加えた。これらは今回のバージョンでは最初から PPM でインストール可能だ。

PAR::Packer のインストール

cpan コマンドを使って PAR::Packer をインストールする。

C:\> cpan -fi PAR::Packer

これによって PAR::Packer と、最新版の Module::ScanDeps が同時にインストールされる。

exe 化してみる

まずは、Hello, World!

C:\> pp -E "say q.Hello, World!." -o test1.exe
C:\> test1
Hello, World!
C:\>

2010-09-14_155306.png

モジュールを使った少し複雑なスクリプト(参考)。後はいろいろ試してみよう。


#!/usr/bin/perl
use utf8;
use Win32::Console::ANSI;
binmode STDOUT => ":encoding(cp932)";
printf "\e[1;37;%dmこれはテストです\e[m\n", 40 + $_
    for 0 .. 7;
C:\> pp -o test2.exe test2.pl

C:\> test2
これはテストです
これはテストです
これはテストです
これはテストです
これはテストです
これはテストです
これはテストです
これはテストです

C:\>

コメントを残す