Perl のスクリプトをexe形式に変 「PAR」
PARはPerlで作成したスクリプトをWindowsで実行可能なexe形式のファイルに変換するためのツール。
PARのインストール
PPMを利用したインストールが可能。2006/8/3現在、Ver0.90がインストールされる。
なお、PARのサイトによると直近のバージョンは0.942であるようだが、まあ気にしないことにする。
ppm> install PAR
PARによる変換
以下のようにすることで hoge.pl が hoge.exe に変換される。詳細は perldoc を参照。
pp -o hoge.exe hoge.pl
pp はスクリプトの実行に必要なモジュールを自動検出するが、自動検出に失敗した場合は、以下のように明示することも可能。
pp -o hoge.exe -M Modeule::Foo hoge.pl
手持ちのスクリプトを変換してみたところ、以下のようなエラーが出力された。
C:\Perl\bin\pp: Binary 'hoge.pl' sure doesn't smell like perl source! C:\Perl\bin\pp: Please try a perlier file!
原因は不明だが、ソースの先頭に記述していた日本語コメント(20行程度)を削除したところ問題なく動作した。
PARの仕組み
いやな日記より。
PAR は次のような仕組みで動いている。
このため、起動時にファイルを展開する時間が少々かかる。Crypt::SSLeay のように、実行時に ssleay32.dll (OpenSSL) などの DLL が必要なモジュールを使う場合には、pp 実行時に -l ssleay32 のように指定すれば、DLL も一緒にパックされる。実行に必要な設定ファイルなども -a でパックできる。
前述のとおり、Perl インタプリタの DLLを実行ファイルにパックするため、hello world だけでも1.7MBほどになり、実行にも1秒ほどかかった。