Perl Moduleのディレクトリ変更
Moduleがないと下記のようなエラーがでます。
Can't locate Unicode/Japanese.pm in @INC (@INC contains: C:/usr/local/lib C:/usr/local/site/lib .) at Test.pl line 18.
BEGIN failed--compilation aborted at Test.pl line 18.
これはUnicodeのモジュールの例ですが、このエントリーは自分で作ったモジュールを使いたい時の話です。
自分で作ったモジュールを様々なプログラムで利用した場合、
と言った安直な方法が考えられますが、前者は一元管理ができないので論外(Linux上ではシンボリックリンクを張ればよいのですが、Windowsではそうはいきません)。後者は一見よさげですが、カッコ悪い。
エラーコードから分かるとおり、Perlがモジュールを検索するディレクトリは限られています。そこで、
C:/usr/local/libに自作モジュール用のディレクトリを作成し、そこでモジュール開発を行う方法が考えられます。
が、そういうところに置いておくとバックアップを忘れたり、フォーマットしてしまったりと、碌なことがありません。
そこで、Linuxであれば
/home/userID/PerlModule/
のような明確なところに置きたいでしょう。
ではPerlモジュールのディレクトリを追加,変更するためにはどうすればよいのか。下記のコードをコードの頭に記述します。
BEGIN {
unshift (@INC, "D:/My Documents/workspace");
}
上記は私の環境です("My Documents"に半角スペースを含んでしまったのは失敗。でもパス指定がごちゃごちゃしているので今更修正できず)。
eclipseを用いて開発をしているので、workspace内を検索して欲しい。ということで記述しています。