- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:パスがうまく通らない)
パスがうまく通らない
このQ&Aのポイント
- CGIプログラムの中で、モジュールのパスが正しく設定されていないため、エラーが発生しています。
- use文で指定されているモジュールのパスが@INCに含まれていないため、モジュールが見つからないエラーが発生しています。
- パスの記述方法や大文字小文字の区別など、モジュールのパス指定を確認してください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
エラーメッセージを見れば分かりますが, use Check; の時点では @INC が変更されていません. なぜかというと, use はコンパイル時に処理されるのに対し unshift は実行時に処理されるからです. つまり, 今の場合「字面としては unshift が前にある」が実行の順序としては「use Check; が先」なのでうまくいきません. use lib 'o:/public_html/post_service/cgi/lib'; とするか, BEGIN ブロックに入れればよかったような気がします.
お礼
何で use Check; が外されている状況では@INCに加えれられているパスがが、この一行を加えると外れてしまうのか不思議でしたが、そういう理由があったのですね。 use lib "~~~"; でパスが追加されました。 ありがとうございます。