このページは、私が配布しているPerlスクリプトをWindowsで使うための環境整備方法について説明しているドキュメントです
目次 |
WindowsではActive Perl(無償版)を使います。配布先よりActive Perl - Free Community Editionをダウンロードしてインストールします。
インストールするPerlのバージョンにより、PPMでCPANライブラリの一部が未対応になっている場合がある(たとえば、2011年12月現在HTML::TagParser
ライブラリはActive Perl 5.14では提供されていないため、このライブラリを使いたい場合は5.12をインストールする必要がある)。
対応しているPPMライブラリの一覧はActiveState Code - PPM Index(公式ページ)で検索できる。
インストール方法は2種類あります。
If you are not sure which version is appropriate, choose ImageMagick-6.7.4-0-Q16-windows-dll.exe.
)
ppm
としても起動できます)。Editメニュー → Preferences → Repositories で次のように設定します。
Image Magick
を検索してImageMagick PERL Extension (QD=8)
をインストールします。
C:\> ppm repo add http://www.bribes.org/perl/ppm Bribes C:\> ppm install Image::Magick
スクリプトの先頭のロードするライブラリ一覧に示されているライブラリをすべてインストールします。
#!/usr/bin/perl use strict; use warnings; use utf8; use Encode::Guess qw/euc-jp shiftjis iso-2022-jp/; # 必要ないエンコードは削除すること use POSIX; # mktime用 use File::Basename; use Image::Magick; use Image::ExifTool; use Image::Size; use Time::Local; use File::Copy; use Text::CSV_XS;
この場合のライブラリのインストール方法は、コマンドラインを使う場合は次のように入力実行します。
C:\> ppm install Encode::Guess C:\> ppm install POSIX C:\> ppm install File::Basename C:\> ppm install Image::ExifTool C:\> ppm install Image::Size C:\> ppm install Time::Local C:\> ppm install File::Copy C:\> ppm install Text::CSV_XS
私が配布しているPerlソースコードは(通常は)Linux用です。Windowsでは文字コードの扱いが違うため、そのままでは日本語が文字化けして読み書きできない状態です。ソースコード先頭部分に、文字コード認識機能を切り替える部分がありますので、そこを修正します。
#!/usr/bin/perl use strict; use warnings; use utf8; my $flag_os = 'linux'; # linux/windows my $flag_charcode = 'utf8'; # utf8/shiftjis use Encode::Guess qw/euc-jp shiftjis iso-2022-jp/; # 必要ないエンコードは削除すること use POSIX; # mktime用 use File::Basename; use Image::Magick; use Image::ExifTool; use Image::Size; use Time::Local; use File::Copy; use Text::CSV_XS; # IOの文字コードを規定 if($flag_charcode eq 'utf8'){ binmode(STDIN, ":utf8"); binmode(STDOUT, ":utf8"); binmode(STDERR, ":utf8"); } if($flag_charcode eq 'shiftjis'){ binmode(STDIN, "encoding(sjis)"); binmode(STDOUT, "encoding(sjis)"); binmode(STDERR, "encoding(sjis)"); }
先頭に、LinuxとWindowsの動作環境を切り替えるスイッチがあります。ここを、次のようにします。($flag_osをwindowsに、$flag_charcodeをshiftjisに変更)
my $flag_os = 'windows'; # linux/windows my $flag_charcode = 'shiftjis'; # utf8/shiftjis
Linux用に作られたスクリプトが正しく実行されるか、テスト運用(デバッグ)を十分行ってください。特に、日本語の処理に問題が起こる場合が多いので、できる限りスクリプトで処理するファイル名やディレクトリ名は英数字のみがよいと思います。