- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:@INCにrequireされたファイルが無い)
@INCにrequireされたファイルが無い
このQ&Aのポイント
- 質問中のエラーメッセージを解決するために、BASE64がインストールされているかどうか確認し、check.cgiを実行してパスを調べました。
- しかし、追加したコードでもエラーが解決せず、BASE64が見つからないというエラーメッセージが表示されます。
- 解決策の提案やサポートを求めています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
use MIME::Base64;としたくないなら、require 'C:/Perl/lib/MIME/Base64.pm'; ついでながら、モジュール「HOGE::Fuga」がインストールされているか確認するなら コマンドラインから > perl -MHOGE::Fuga -e '' エラーが出なければインストールされています。
その他の回答 (1)
- kumoz
- ベストアンサー率64% (120/185)
回答No.1
> unshift @INC, "C:/Perl/lib/MIME"; 上の文は実行時に処理されるので、コンパイル時に処理される use 文の段階では @INC に追加されていないのでエラーになります。解消するには、いくつかの方法があると思います。 1) use MIME::BASE64; 2) use lib "C:/Perl/lib/MIME"; use BASE64; 3) 他にも PERL5LIB などの環境変数を設定する方法があります。OS やシェルによって設定方法が異なりますが、1度設定すれば自動的に @INC にパスが追加されます。
質問者
お礼
題意からするとこちらの方がベストアンサーだと思います。 そういえばuseとrequireの違いがあったなと思い出しました。日曜プログラマの悲しさというか。。。 ありがとうございます。
お礼
サイトで見つけたcheck.cgiなるプログラムの中を見ると、そんなに難しいプログラムではないなと思いましたが、これをいちいち組むとなると、やっぱりプログラムって大変ですね。 それがたった一行で解決できるのは魔法のようです。ありがとうございます。