- ベストアンサー
関数が使えない
関数が使えない状態になっており、困っています。 メッセージは下記が出ています。 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」ということに関係している箇所みつからず、また、ここに書かれている内容は難しく情報があまり得られませんでした。 宜しくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
私もやってしまったことがあるのですが、 useで読み込まれるファイルと、 「使おうとしている関数が所属しているパッケージ」が違うということは ありませんでしょうか。 例えば、perlモジュールパス上にある hoge.pm を読み込みたくて、 use hoge; と書いたのに、 カレントにも hoge.pm があって、 そちらが読み込まれている、のような状態です。 もしそうだとすれば、 コマンドラインで perldoc -l hoge とすると、読み込まれるモジュールのフルパスが表示されるので、 それで確認ができます。 まったく見当違いでしたらすみません。
その他の回答 (2)
- Tacosan
- ベストアンサー率23% (3656/15482)
いや, 「コンストラクタがどうのこうの」ではなく, @ISA に「基底クラス」を入れないといけなかった気がするんだけどどうだっけな, と.
お礼
継承する必要はないので、その問題はないと思っています。
- Tacosan
- ベストアンサー率23% (3656/15482)
パッケージを use するだけでは「基底クラス」にはならなかったような気がするんだけど, そこは OK?
お礼
constructer も実行しています。 (constructerがない場合は、construct もしませんが。) ありがとうございました。
お礼
ありがとうございますー 原因は、似たような単純なことで、 インスタンス化したものが、 小文字で宣言されていて、 使用する時に大文字でそのオブジェクト名を指定してしまっていたせいでした、、