関数が使えない状態になっており、困っています。
メッセージは下記が出ています。

Can't locate object method "%s" via package "%s"

そのパッケージにも、基底クラスにも、該当のメソッドが定義されていないとうことのようですが、
使おうとしている関数が所属しているパッケージを、しっかりとuse しています。

また、「perlobj manpage」というページに情報があるらしいというのを情報として得たのですが、↓
http://fleur.hio.jp/perldoc/mix/pod/perlobj.html
「Can't locate object method」ということに関係している箇所みつからず、また、ここに書かれている内容は難しく情報があまり得られませんでした。

宜しくお願いいたします。

A 回答 (3件)

私もやってしまったことがあるのですが、


useで読み込まれるファイルと、
「使おうとしている関数が所属しているパッケージ」が違うということは
ありませんでしょうか。

例えば、perlモジュールパス上にある hoge.pm を読み込みたくて、
use hoge;
と書いたのに、
カレントにも hoge.pm があって、
そちらが読み込まれている、のような状態です。
もしそうだとすれば、
コマンドラインで
perldoc -l hoge
とすると、読み込まれるモジュールのフルパスが表示されるので、
それで確認ができます。

まったく見当違いでしたらすみません。
    • good
    • 0
この回答へのお礼

ありがとうございますー

原因は、似たような単純なことで、
インスタンス化したものが、
小文字で宣言されていて、
使用する時に大文字でそのオブジェクト名を指定してしまっていたせいでした、、

お礼日時:2009/05/27 20:39

いや, 「コンストラクタがどうのこうの」ではなく, @ISA に「基底クラス」を入れないといけなかった気がするんだけどどうだっけな

, と.
    • good
    • 0
この回答へのお礼

継承する必要はないので、その問題はないと思っています。

お礼日時:2009/05/27 20:38

パッケージを use するだけでは「基底クラス」にはならなかったような気がするんだけど, そこは OK?

    • good
    • 0
この回答へのお礼

constructer も実行しています。
(constructerがない場合は、construct もしませんが。)

ありがとうございました。

お礼日時:2009/05/23 09:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング