WindowsでのPerlスクリプト利用方法 (Active PerlでのCPANモジュール インストール方法)


このページは、私が配布しているPerlスクリプトをWindowsで使うための環境整備方法について説明しているドキュメントです

戻る一つ前のメニューに戻る


目次

Active Perlのインストール

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(公式ページ)で検索できる。

Image::Magickモジュールのインストール

インストール方法は2種類あります。

  • ImageMagick公式ページのパッケージをインストールする方法
ImageMagick公式ページよりWindows版Binary Releasesをダウンロードしてインストールします。どのパッケージをインストールしてよいかわからないときは、公式ページに説明されているものをまず試してください。(If you are not sure which version is appropriate, choose ImageMagick-6.7.4-0-Q16-windows-dll.exe.
この方法でImage::Magickをインストールする場合は、Active Perlより前にImageMagickをインストールしてください
  • Active PerlのPPMを使ってImageMagickをインストールする方法
たとえば、Ambrose Bierce氏が公開しているリポジトリ(公式ページ)を用いる方法です。
まず、Active PerlでインストールされたPerl Package Manager (PPM)をスタートメニューから起動します(コマンドラインでppmとしても起動できます)。Editメニュー → Preferences → Repositories で次のように設定します。
windows-perl-install-figppm.jpg
リポジトリが追加されたら、Image Magickを検索してImageMagick PERL Extension (QD=8)をインストールします。
コマンドラインでインストールする場合は、次のようにコマンドを実行します。

C:\> ppm repo add http://www.bribes.org/perl/ppm Bribes C:\> ppm install Image::Magick

各スクリプトに必要なCPANモジュールをインストールする

スクリプトの先頭のロードするライブラリ一覧に示されているライブラリをすべてインストールします。

Perlスクリプトの例(スクリプト先頭部分抜粋)
#!/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では文字コードの扱いが違うため、そのままでは日本語が文字化けして読み書きできない状態です。ソースコード先頭部分に、文字コード認識機能を切り替える部分がありますので、そこを修正します。

Perlスクリプトの例(スクリプト先頭部分抜粋)
#!/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用に作られたスクリプトが正しく実行されるか、テスト運用(デバッグ)を十分行ってください。特に、日本語の処理に問題が起こる場合が多いので、できる限りスクリプトで処理するファイル名やディレクトリ名は英数字のみがよいと思います。

戻る一つ前のメニューに戻る