プロが教えるわが家の防犯対策術!

Windows2000上でCGI及びPerlを動かせるようにしたは宵のですが、ライブラリ等をrequireするとエラーがでます。
ライブラリをCGIと同じディレクトリにおいても、違うディレクトリにおいてもエラーが出てしまいます。

外部ファイルを読み込むときにはまた別に設定がいるのでしょうか。
HELPも見てみましたがよくわかりませんでした。

ご存知の方がおられましたらよろしくお願致します。
サーバにはIIS5.0を使用しています。

A 回答 (3件)

>The specified CGI application misbehaved by not returning a complete >set of HTTP headers. The ers it did return are:


>
>Can't locate ライブラリのパス at スクリプトのパス line 13.

これって、多分Win系だけで出るエラーだと思うのですが。。。
(はじめてみた)
で、ライブラリのパスの部分に@INCとかって出ていませんか?
@INCに格納されたディレクトリを対象にuse や require で指定されたライブラリ
やモジュールを探し、実行あるいはIncludeするので、@INCに格納されていない
パスにあるライブラリの場合は、このエラーが出るかも知れません。

また、私はApacheユーザなのでわかりませんが、IISとPerlの連携がうまく
いっていないような気がします。
エイリアスに対して、対応するサーバ上のフルパスが、Perl側で認識しているか
も問題点かも知れません。

とりあえず、requireする前に
use lib '/usr/site/lib';
require 'hoge.pl';
などとして、@INCにライブラリのパスを追加してみてください。

この回答への補足

>これって、多分Win系だけで出るエラーだと思うのですが。。。
そうなんですか?
@INCはでていません。
絶対パスでしていするとうまくいっているようです。
そういえば、IISで動かすときにはパスを通さないといけないと聞いたことがあるようなきがします。
また調べてみますね。
何度も書き込みありがとうございました。

補足日時:2001/08/04 03:24
    • good
    • 0

requireの戻り値に、正常に真が帰ってますでしょうか?


requireされたライブラリの末尾に
1;
が記述されているかを確認してください。

また、本当にrequireが原因でエラーなのかどうかは、あなたの文面ではわかりません。
エラーメッセージも教えてください。

この回答への補足

>また、本当にrequireが原因でエラーなのかどうかは、あなたの文面ではわかりません。
まったくそのとおりですね。
慌てていたもので、申し訳ありませんでした。

エラーメッセージは
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The ers it did return are:

Can't locate ライブラリのパス at スクリプトのパス line 13.

です。
ライブラリの方は”1;”は記述されています。

補足日時:2001/08/03 01:45
    • good
    • 0

require文の文法はあっていますか?



参考URL:http://tohoho.wakusei.ne.jp/wwwperl2.htm#require
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!