• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:パスがうまく通らない)

パスがうまく通らない

このQ&Aのポイント
  • CGIプログラムの中で、モジュールのパスが正しく設定されていないため、エラーが発生しています。
  • use文で指定されているモジュールのパスが@INCに含まれていないため、モジュールが見つからないエラーが発生しています。
  • パスの記述方法や大文字小文字の区別など、モジュールのパス指定を確認してください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

エラーメッセージを見れば分かりますが, use Check; の時点では @INC が変更されていません. なぜかというと, use はコンパイル時に処理されるのに対し unshift は実行時に処理されるからです. つまり, 今の場合「字面としては unshift が前にある」が実行の順序としては「use Check; が先」なのでうまくいきません. use lib 'o:/public_html/post_service/cgi/lib'; とするか, BEGIN ブロックに入れればよかったような気がします.

makoji
質問者

お礼

何で  use Check; が外されている状況では@INCに加えれられているパスがが、この一行を加えると外れてしまうのか不思議でしたが、そういう理由があったのですね。  use lib "~~~"; でパスが追加されました。 ありがとうございます。