-PR-
解決済み

なぜエラー?

  • 困ってます
  • 質問No.461650
  • 閲覧数56
  • ありがとう数5
  • 気になる数0
  • 回答数5
  • コメント数0

お礼率 91% (55/60)

フォームに書き込まれた内容をCGIへ送る練習をしているのですが、どーーーーしてもエラーがでます(泣)
何故でしょうか。(改行や日本語処理はおいておいて下さい)

CGI側をコピペしてみます。
#!/usr/local/bin/perl

require 'lib/cgi-lib.pl';
&ReadParse(*form);

print "Content-type: text/html\n\n";
print "<html>\n";
print "<head><title></title></head>\n";

print "$form{'kousin'}\n";

print "</body>\n";
print "</html>\n";

__END__

でエラー内容が
# lib/cgi-lib.pl did not return a true value.
File 'Macintosh HD:Desktop Folder:home:new:new.cgi'; Line 3
です。
cgi-lib.plは置き場所を変更してみたりしてるんですが、どこに置いても同じです。Line3ってこれ以上どーすればいいのでしょう‥‥うぅ。
MacOSでMacJPerl、サーバーにQuid Pro Quoを使ってます。
通報する
  • 回答数5
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.5
レベル9

ベストアンサー率 56% (42/74)

cgi-libはどこから入手したものでしょう。改行コードの問題ありませんか?
通常、配布されているライブラリはUnix用に書かれたもので、Unix<->Windowsでは改行コードが違ってもCGIで使うならちゃんと動いてくれることも多いですが、Macの場合どうなんでしょう。

ご存じだとは思いますが、改行コードは
Unix:LF
Windows:CR,LF
Mac:CR
です。
と、ここまで書いて、

Unixの改行コードで保存されていたら、一致するものがないので動かない可能性は十分あるなと思ったりもしています。
テキストエディタでMac用の改行コード(CR)で保存直して試してみてはどうでしょう。
"ビンゴ!"だったらいいのですが。


PATHの指定方法が間違っていましたが、":"を使うのは正しいようです。
googleで、"MACPERL" で多くのサイトが検索され、いくつかそのことにふれています。
"::lib:cgi-lib.pl" が正しいそうです。でも、"/" で認識してるかんじですよね。記述が間違ってるんですかね。
補足コメント
Terari

お礼率 91% (55/60)

御協力下さった皆様、本当にありがとうございました。
色々注意しなくてはいけない点などがわかり、大変勉強になりました。
また何かと質問する事もあると思いますが、よろしくお願いします。
投稿日時 - 2003-02-04 02:43:47
お礼コメント
Terari

お礼率 91% (55/60)

できました!!できましたよぅ~(感涙)

cgi-lib.plの改行コードの問題だったみたいです。CRに変更したらできました。

本当にありがとうございました!!
これでやっと次のステップに進めます。
頑張ります。
ちなみに/か:か、ですが、/で認識されていて、:だと認識されませんでした。
投稿日時 - 2003-02-04 02:42:36

その他の回答 (全4件)

  • 回答No.1
レベル9

ベストアンサー率 56% (42/74)

Macは全然触ったことがないので『大外し』かも分かりません。

'cgi-lib.pl'を同じフォルダに置いて
require 'cgi-lib.pl';
としてもエラーがでますか。

>Folder:home:new:new.cgi'; Line 3
ここが気になります。':'がMac流のPATHの区切り記号ですか?
require 'lib:cgi-lib.pl';
としたらどうなります?
お礼コメント
Terari

お礼率 91% (55/60)

アドバイスありがとうございます。

cgi-lib.plを同じフォルダに置いても(上でも下でもどこでもですが)同じエラーがでます。
require 'lib:cgi-lib.pl'; というのもやってみましたが、これはダメでした。言われて気付きましたが、なんで:で区切られてるんでしょうね(^^;
投稿日時 - 2003-02-03 13:33:40


  • 回答No.2
レベル14

ベストアンサー率 42% (1231/2878)

cgi-lib.plの最後で、

1;

ってな文が無かったら、追加してみて下さい。
お礼コメント
Terari

お礼率 91% (55/60)

アドバイスありがとうございます。

ちゃんと最後に1;はありました。一安心です。
投稿日時 - 2003-02-03 13:34:54
  • 回答No.3

cgi-lib.plはCGI本体の1つ下の階層にあるのですか?

require 'lib/cgi-lib.pl';
      ↓
      ↓
require './lib/cgi-lib.pl';

と変えてみてはどうでしょう?
お礼コメント
Terari

お礼率 91% (55/60)

アドバイスありがとうございます。

require './lib/cgi-lib.pl';としてみましたが、ダメでした。
cgi-lib.plの置き場所が悪いかと思い、色々な階層に置いてやってみたんですが、どこに置いても同じエラーがでるんです。置き場所や、パスミス(?)ではないみたいなんですが‥‥
投稿日時 - 2003-02-03 13:37:32
  • 回答No.4

#3です。

それから、<body>の開始タグもお忘れなく。

print "<html>\n"; → print "<html><body>\n";

ご質問のcgi-lib.plの問題が解決されても、表示がおかしくなる可能性がありますので。
補足コメント
Terari

お礼率 91% (55/60)

補足の欄をお借りします。

なかなか解決されません(泣)
これでどうかな?など御意見がありましたら、ぜひ書き込んで下さい。
もっと状況説明が必要でしたら、書き込みますので一言お願いします。
よろしくお願いします。
投稿日時 - 2003-02-03 13:41:01
お礼コメント
Terari

お礼率 91% (55/60)

あぁ、ほんとだ‥‥<body>開始タグ、忘れてますね‥‥‥
全然気付きませんでした(^^;
御指摘ありがとうございました。
投稿日時 - 2003-02-03 13:39:26
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-

特集


開業・独立という夢を持つ人へ向けた情報満載!

ピックアップ

ページ先頭へ