Windows Server 2003 の Apache と IIS6 の両方で実行される Perl Web アプリケーションがあります。Apache では、このスクリプトは問題なく動作します。ISAPI を使用する IIS で、次のエラー メッセージが表示されます。
ソフトウェア エラー:
モジュール Sub::Name の 'lib/auto/Sub/Name/Name.dll' を読み込めません: load_file:指定されたモジュールが C:/Perl/lib/DynaLoader.pm 行 230 で見つかりませんでした。 lib/DBIx/Class/Schema.pm の 10 行目 lib/DBIx/Class/Schema.pm の 10 行
目の require でコンパイルが失敗しました。BEGIN failed--lib/DBIx/Class/Schema.pm 行 10 で
コンパイルが中止されました。(eval 39) 行 3 で、コンパイルが require で失敗しました。 ...C:/Perl/lib/CGI/Carp.pm 行 314 で伝播されました。 .
BEGIN に失敗しました -- コンパイルは My/Schema.pm 行 2 で中止されました。
IIS で ISAPI を使用しない場合、問題なく動作します。IIS 環境では引き続き ISAPI を使用したいと考えています。通常の Perl を実行しているときは検出できるのに、なぜこのモジュールを検出できないのですか?
編集:
相対パスで呼び出していました。
use lib qw{My lib}; # line in question
use My::Schema; # explodes