技術的雑談-AutoLoaderを使用しているperl moduleを手動でInstallする
環境
- とりあえずperl5系が動けばOKだと思う。
- 確認はCentOS4.3環境
現象
- perl module(.pm)を手動でInstallしたとき、以下のようなError messageが出る。
Can't locate auto/xxxx/xxxxx/xxxxxxx in @INC (@INC contains:〜 (先頭に「auto」が付いているのがポイント)
原因
perl moduleの中には「AutoLoader」というperl moduleを使い、moduleの必要な部分を必要になった時にロードするものがある。
perl moduleの手動Installを行うと、AutoLoader用のファイル分割がされないままになっている事があり、AutoLoaderでエラーになる。
対処
サーバにログインし、以下のコマンドを実行する。
perl -e 'use AutoSplit; autosplit($ARGV[0], $ARGV[1], 0, 1, 1)' xxxxxxx.pm yyyy/zzzz/auto
- xxxxxxx.pm
- AutoLoaderで分割する元のperl module
- yyyy/zzzz/auto
- 分割されたファイルを配置するディレクトリ。最後は「/auto」で終わる事。
履歴
2006/10/24 -- 初版
技術的雑談へ戻る
突っ込み
- 参考にさせて頂きました。Can't find 'package Name;' in ファイル名.pmとなり、ハマっていたのですが、まさかパッケージ名を付けていない事が原因だったとは・・w auto/以下に出来るファイルは、通常通り(useで呼ぶためにlib/をパスに通せばよいのですかね・・?)呼べば良いのでしょうか。ちょっとやってみます - たった (2010年03月25日 15時17分29秒)