• ベストアンサー

eval関数?エラーについて

eval関数?エラーについて 掲示板の設置と設定時に各項目について必須や任意に設定できますが必須項目に無入力で投稿するとeval関数?エラーが表示されるのですが、この仕組みについて知りたいです。

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

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

その掲示板の作りかたによるものなので、一般的な「仕組み」では無いです。 eval関数そのものについては、引数で渡された文字列をPerlのスクリプトだと解釈して「実行」するものです。 例えば $s='$a = 1;'; $a=0; eval $s ; print $a; とすると、eval $s では $a=1; が実行されて、printでは 1 と表示されます。 おそらく、その掲示板のプログラムでは、必須項目に書いた内容を加工してプログラム状にし、evalで実行して使っているのでしょう。それが空欄だと、文法かなんかで正しくないプログラムになり、evalで実行できない、ということなのでしょう。

その他の回答 (1)

  • YkazubonY
  • ベストアンサー率30% (26/86)
回答No.1

eval関数は、CPAN辺りで拾ってきたモジュールが、その内部で勝手にexit()してしまって、 exit()されては困る担当者が、大変困ったとき、exit()関数のエラーコードを戻して貰って、自分が書いたPerlコード内で、エラー処理をするための関数ですね。 eval関数の引数には、問題がある関数とその引数を記述します。 eval関数のコーディングの仕方の善し悪しは、具体的に示されないと判断出ませんね。