• ベストアンサー

未定義関数のチェック

あるCGIゲームを改造中に、エラー(500などではない)が発生したようで、 どうやら未定義関数が原因であると言うことを他の方に聞きました。 しかし、PERLチェッカーでもエラーにならないので、チェックができないのですが、チェックする方法はありますでしょうか? 解答をお願いします。

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

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

apacheとかだったら、エラーログに、その時のエラーメッセージが書かれていますので、それを確認しては。 また、関数evalでブロックを囲むと、そのブロック内で発生した実行時エラーをトラップできるので、それで処理を継続させるとか。

参考URL:
http://flex.ee.uec.ac.jp/texi/perl/perl_39.html
watahiro12
質問者

お礼

文法をevalで囲むってコトですね。(多分 やってみます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • ikspiari
  • ベストアンサー率48% (29/60)
回答No.3

それは少なくてもエラーとは言わないです。 Perl は正常に処理を行い、HTTPD は 200 のステータスを返しているはずです。 単純に、その「一部だけ表示されない」という処理部分が抜けているのではないでしょうか? もしくはサブルーチンにしているなら呼び出していないとか。

watahiro12
質問者

お礼

なるほど。 処理部分が抜けていると言うことはないと思うのですが・・・・ やっぱり後者が原因かな?

watahiro12
質問者

補足

締め切るのを忘れていました(汗 諦めました。         2003/5/31

全文を見る
すると、全ての回答が全文表示されます。
  • ikspiari
  • ベストアンサー率48% (29/60)
回答No.2

500 以外のエラーって何でしょうか?

watahiro12
質問者

補足

エラーというのは、500みたいに、全体が表示されないエラーではないんです。 一部だけ表示されないので、よけいに困っています。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 関数定義での変数について

    Perl/CGIより移行してきた者です。 この度、サブルーチン(PHPで言う関数定義)にて疑問があります。 当方、PHP5を利用しています。 Perl/CGIでは関数外で定義した変数も利用できたかと思うのですが、PHPでは利用できますか? 簡単なスクリプトでテストしたら表示されなく頭を悩ませています。 以下コードになります。 <?php $prints ="aaa"; $printss ="bbb"; function check3(){ print "$prints"; print "$printss"; } check3(); ?> Perl/CGIですと $test = "aaa"; &print(); sub print { print "$test"; } でもばっちり表示されたかと思うのですが。 伝わりにくいかと思いますが、ご存知の方宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 逆関数と定義域の解き方がわかりません‥

    y=√x+2 (+2部分も√です) の逆関数と定義域を求める問題なのですが、 計算するとy=x^2-2 という式がでましたが、 逆関数を求めよという場合、この形で終わらせていいのですか(*_*)? それとも他の形に直したりしたほうがいいのでしょうか‥ 解答に2乗があるのが気になって、直したほうがいいのか悩んだので‥‥ あとこの逆関数の定義域はどう求めたらいいのでしょうか?

  • ACCESS モジュールで自作した関数が、未定義関数・・・?

    モジュールで自作した関数を使用する際、普段は問題なく使用できるのですが、何かの拍子に「未定義関数です」という内容のエラーが発生します。 こうなると、この関数は使えなくなります。 この関数のコードを変更しなくても、このエラーは発生します。 ACCESSそのものを再起動すると問題なく使用できます。 なぜこのようなことがおきるのでしょうか? 解決方法はありますか? よろしくおねがいします。

  • Rubyの関数定義

    Rubyで関数を定義し、呼び出すとエラーになります。 sub1() #sub1の呼び出し ・・・ def sub1() ・・・ end のようにすると、エラーになります。 def sub1() ・・・ end sub1() #sub1の呼び出し のようにするとエラーになりません。 関数の定義を呼び出し箇所のソースの後ろで定義してもエラーにならない方法はないのでしょうか。 ご存じのかた、いらしたら教えて下さい。

  • tag_check関数について

    はじめまして、以下の事について何方かご教授頂けると幸いです。 http://www.ezclubstd.com/ 上記のフリーCGI配布サイト様より「みにっちぼ~」という掲示板をDLしました。 今回頭を抱えているのは、このCGIに「tag_check」を盛り込もうと試行錯誤を重ねているのですが、行き詰まってしまいました。 Perlの知識は何とか読める程度で、書くことができません。 http://www.tryhp.net/ 上記のサイトで配布されている「perl-lib.pl」を参考にしてみましたが、望んでいる結果となりません。 ならばと思い、「tag_check」を採用している他のCGIを参考にしてみましたが、文法が違うようでこれも断念してしまいました。 ちなみに「perl-lib.pl」ですが、外部ファイルから読み込もうとすると500が返ってきました。パーミッションの設定を755/644としてみましたが変化はありませんでした。 「tag_check」の部分を直接CGI本体にペーストしてみたものの、ディスプレイを眺めたまま途方に暮れています。 軽率ではありますが、何方かお力添えして頂けると幸いです。 宜しくお願いします。

  • perl構文チェックOKなのにCGIが作動しない

    自分のパソコンでサーバーを(apache)を置いて、perlでCGIの勉強を始めたのですか、perlは -cw でOKが出ても、CGIを動かすと、サーバーエラーが出ます。どういった原因が考えられ、どう対処すればいいのか教えてください。htmlへのprint関数は表示されるのですが、time が出来ません。カウンターや掲示板も試すのですが、すべてエラーが出ます。また、一度出来た、入力文章を受けとるCGIもエラーがでます。perl初心者なのでいろいろ教えてくださるとうれしいです。

  • 関数引数に対する制限値チェック方法

    引数に対する制限値チェック方法  プログラミング(組み込み系C言語)関数作成時にいつも私が迷ところなのですが、  関数の引数に対する制限値(範囲外)チェックどうするか、次の(1)、(2)で悩んでます。。   【1】関数内で制限値チェックで行い、制限値外であれば戻り値でエラーコードを返す。   【2】関数呼び出し時に、引数となる値(変数)をチェックし、制限値内であることを確認してから、関数を呼び出す。  上記の【1】、【2】の方法どちらがよいでしょうか?  状況にもよるとは思うのですが、その場合はどういった状況時に(1)||(2)がよいのか教えてください。  (【3】もあればお願いします。)  --【1】がお勧めの場合の質問  (1)本関数での"結果"を返したいときどうすればよいかアドバイスください。     戻り値("結果")と、エラーコードを兼用するのはなんかイヤです。。     エラーコード付き関数は、全て同じ戻り値(1:OK時、-1:NG時 みたいに)     としてまとめたいからです。  (2)極端にほとんどの関数の戻り値を、OK/NG とす。これってどうですか?、 ///////////////////////  【1】、【2】の利点、欠点を僕なりに考えてみました。  ##【1】の利点/欠点  利点:   ・本関数呼び出し時に、毎回制限チェックをしなくてよくなる。    (汎用的に様々な場面で、使用するのであればこれは良い利点だと思います。)  欠点:   ・戻り値のとして、エラーコードを返さなくてはならないため、本関数での結果を返したい場合、    以下方法をとらないといけない。      1、引数をポインタとして、その引数で値を返す。      2、戻り値として、エラーコードと兼用して返す。        (例:エラー時の戻り値 = 0、正常にの戻り値 = 1~ 255)  ##【2】の利点/欠点  利点:   ・エラーコードを返す必要がなくなるため、戻り値が有効利用できる。  欠点:   ・関す呼び出し毎に、制限チェックが発生し、制限チェック忘れが発生する。    (汎用的に使うにのであればなお・・・)

  • C言語の標準関数のエラー

    現在ソケット通信でデータを送受信するプログラムを作っています。 通信してデータのやり取りする部分はできたので、関数のエラーチェック、異常が発生したときの処理を追加しているところです。 異常時の処理は、エラーの通知・メモリの解放など行っている感じです。 今エラーの判断を行うのに関数の戻り値を利用しているのですが、ふと疑問が浮かんできました。 それは、関数がエラーを返すときはどういうときなのか、つまり、エラーが発生する原因はなんなのか?ということです。 関数について解説しているHPを見ても、戻り値は載っていてもなぜその戻り値が返ってくるのか、といった原因まで解説してくれているところがありません。 標準関数について、エラーが返る原因を解説しているHPはあるでしょうか。もし知っている方がいれば教えていただけると幸いです。 HPでなくても、他に調べる方法があればご教授お願いします。 特に通信用の関数について知りたいというわけでなく、エラーについて興味があるといった感じです。 ・・・といいつつも、ソケット関数について教えていただければ例外処理も考え易いかなと思っています^^;

  • ユーザー定義の関数(マクロ)のLANでの共有

    お世話になります。社内LANで繋いでおります、エクセルで一部ユーザー定義の関数(マクロ、アドインで使用)が入った共有する表があります。他のPCでその表を開くと「自動リンクの更新できません…」と表示され、そこのセルはエラー表示になります。ユーザー定義の関数をLANで共有する方法を教えてください、お願いします。OSはXP、オフィス2000です。

  • cgi-lib.plのReadParse関数

    あるパールからcgi-libを呼び出して、ReadParse関数を使おうとするとInternal Server Errorがでてしまいます。 パールの中身は #!/usr/local/bin/perl require 'cgi-lib.pl'; require 'jcode.pl'; &ReadParse(*in); です。 そこで3行目と5行目の行頭に#をつけて飛ばすとパールは正常に動きます。 これってcgi-lib.plのReadParse関数がいけないんでしょうか? ダウンロードしたまま何も変更していないのに..... ちなみにサーバーのパールのバージョンは5.004のようです。

    • ベストアンサー
    • CGI