Perlで「Can't locate parent.pm」が発生する場合の対処

Perlで「Can't locate parent.pm」が発生する場合の対処

Posted at July 5,2013 12:55 AM
Tag:[Perl, TroubleShooting]

Perlのプログラムを実行したところ、

Can't locate parent.pm in @INC (@INC contains: ~

というエラーが発生しました。

具体的には、とあるMovable Typeのプラグインをインストールして使っていたのですが、正常に動作していないようなのでシステムログを確認したところ、冒頭のエラーが残っていました。

(クリックで拡大)
システムログ

ということで、原因と対処方法について紹介します。

1.parent.pmとは

parent.pmは、

use base 'XXX';

というクラス継承のシンタックスを

use parent 'XXX';

と、モダンに書けるようにするためのモジュールです。

調べたところ、Perl5.8系の場合、parent.pmは標準モジュールではないため、このモジュールがない状態で、

use parent 'XXX';

の行を実行すると、冒頭のエラーが発生したようです。

私が使っているさくらインターネットでPerlのバージョンを調べたところ、v5.8.9でした。

Perlのバージョン

2.対処方法

5.8系の場合、CPANからparent.pmをインストールする必要があります。

サーバのroot権限があれば次のコマンドでインストールできると思います。

sudo perl -MCPAN -e 'install parent'

共有サーバなど、root権限がない場合でも「Authen::Captcha をインストールして Captcha Plugin を利用する(CPAN による perl モジュールのインストール)」で示す手順でインストールして、プログラムを書き換えれば動作するはずです。

もしやり方が分からない場合は、ちょっと乱暴ですが以下の手順で大丈夫だと思います。

CPANのページに移動し、「parent」を入力して「CPAN Search」をクリック。

CPANのページ

「parent」をクリック。

CPANの検索結果

「Source」を右クリックして、FIrefoxであれば「名前をつけてリンク先を保存」を選択。あるいはクリックした次のページのソースをparent.pmというファイル名で保存してください。

parentのページ

作成またはダウンロードしたparent.pmを、Perlプログラムが参照するパスにアップロードすればOKです。

関連記事
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)