- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CGIモジュールを使いたいのですがエラーがでます。)
CGIモジュールを使いたいのですがエラーが出ます。
このQ&Aのポイント
- CGIモジュールを使用している際に、param関数を使うとインターネットサーバーエラーが発生します。エラーログにはUndefined subroutine &main::param called at C:/sample.cgi line 9.というメッセージが表示されます。どうしてエラーが発生しているのでしょうか?
- CGIモジュールを使用しているプログラムにparam関数を追加したところ、インターネットサーバーエラーが発生しました。エラーログにはUndefined subroutine &main::param called at C:/sample.cgi line 9.というエラーメッセージが表示され、問題の箇所は$year = param('year');の行です。このエラーの原因は何なのでしょうか?
- CGIモジュールを使用しているプログラムにparam関数を追加したところ、エラーログにUndefined subroutine &main::param called at C:/sample.cgi line 9.というメッセージが表示され、インターネットサーバーエラーが発生しました。なぜこのエラーが発生しているのか、どのように修正すればよいのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
use CGI qw(standard); ではなく、 use CGI qw(:standard); です。 記述ミスですね。これで上手く動きます。
その他の回答 (1)
- kalze
- ベストアンサー率47% (522/1092)
回答No.1
CGIモジュール内で定義されている関数などは、 CGIクラスの関数として定義されています。 そしてクラスの定義しかしていませんから、実体がありません。 まぁおまじないのように以下のようにしてみては? my $q = new CGI(); $year = $q->param('year'); $mon = $q->param('mon'); 「Perl CGIモジュール」で検索するだけでも解説やサンプルがでてきますよ。 モジュールはいちいち自分で作らなくていい、作りたいものの機能部分だけに集中できるという利点はありますが、使い方はしっかり調べないと自分で把握できないバグを作りかねません。 しっかり使い方を調べることをお勧めします
質問者
お礼
CGIモジュールは便利そうなので勉強してつかえるようにします。 ありがとうございます。
お礼
とほほ・・・ 初歩的なミスでした。 これでうまくうごきました。 ありがとうございました。