ビギナーズ CGI

 初歩から始める初心者向けPerl-CGI講座  

| トップページ | CGI設置 | CGI作成 | 作成事例 | 設置用語 | 作成用語 | 関数リファレンス | FAQ | お問合せ |
  
CGIの設置方法
フリーで配布されているCGIを設置する際の手順や注意事項などの説明です。

CGI作成の初歩
初めてCGIを作る方向けの手順を簡単な例で説明しています。

CGI作成ヒント集
こういう事をする時は、どのように行えばいいのか?など具体的な事例を紹介します。

CGIの設置に関する用語
CGIの作成に関する用語
CGIの設置や作成時に使われている用語や関連知識を掲載しています。

設置に関するFAQ
作成に関するFAQ
設置や作成をする際に起こりがちなトラブルの説明と、よくある質問とその回答を掲載しています。

関数リファレンス
関数や演算子、特殊記号の意味や使い方を説明しています。



 
 
eval

eval は引数に与えたブロックや文字列をスクリプトとして実行し return の値や
エラーの場合はスクリプト名とエラーを起こした行番号を $@ へ格納します。
これを利用すると不具合を起こした行を特定する事が出来非常に便利です。

書式例
eval
{

  


};
 実行する処理
の処理を実行し、 return で返された値や、エラーが発生した場合
は $@ へエラーを起こしたスクリプト名と行番号が入ります。
eval { }; と で閉じている事に注意して下さい。









エラーの発見をする

【追加前のスクリプト】
例えば下のように別のファイルから読み込んで実行するスクリプトにエラーがあったとします。
これで何処にエラーがあるのか分からない場合は eval で囲んでみます。



【追加後のスクリプト】
下のように eval で囲うと、そのブロックを実行しエラーがあった場合 $@ に格納しますので、
ブロック直後くらいに $@ があった場合画面表示するような文を追加しておきます。


ここで aaa.cgi が見つからないエラーだったとすると、下のように画面表示されます。
test.cgi の 5行目(aaa.cgi) の読込みでエラーがあった事が分かります。
Can't locate ./aaa.cgi in @INC (@INC contains: /usr/local/lib/perl5/5.00503/sun4-solaris /usr/local/lib/perl5/5.00503 /usr/local/lib/perl5/site_perl/5.005/sun4-solaris /usr/local/lib/perl5/site_perl/5.005 .) at ./test.cgi line 5.





読み込んだスクリプト内でエラーがあった場合の表示

読み込んだスクリプト内を実行した際にエラーとなった場合も画面表示をしてくれます。
書き方は上記と同じで、実行時にエラーとなったとします。


【不具合の部分】
例えば下のように読み込んだスクリプト内に不具合があったとします( open行 の ; が無い)




この場合下のように表示されます。
aaa.cgi の 4行目で ; が無い為に ) @aaa と 上の行とつながってしまっている事が分かります。
syntax error at ./aaa.cgi line 4, near ") @aaa "




Beginner's CGI  - Copyright (C) 2003 aimix. All Rights Reserved -