もう 3 回目になるが、Perl スクリプトを exe 化する方法について。Perl が 5.12.2 にアップデートしたのでまとめてみた。
PARでPerlスクリプトをexe化 @ ActivePerl 5.10.1 build 1007
https://blog.delphinus.dev/2010/02/par-activeperl-5101-build-1007.htmlActivePerl 5.12 で PAR::Packer をインストール
https://blog.delphinus.dev/2010/04/install-par-packer-on-activeperl-5120.html
必要モジュールのインストール
まずは、PPM(Perl Package Manager)を使って必要なモジュール(+α)をインストールする。
Win32::Exe
Parse::Binary
Getopt::Argvfile
PAR
PAR::Dist
dmake
MinGW
前回このリストに並べていた Module::ScanDeps
がここにない。最終目標となる PAR::Packer
のインストールには Module::ScanDeps
のバージョン 0.98 以上が必要なのだが、現在 PPM 上には 0.97 しかおいてないのだ。
また、最後の 2 行に dmake
と MinGW
を加えた。これらは今回のバージョンでは最初から 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:\>
モジュールを使った少し複雑なスクリプト(参考)。後はいろいろ試してみよう。
#!/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:\>