ビギナーズ CGI

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

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

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

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

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

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


 
 



サブルーチン内はローカル変数がお薦め


同じ処理を何度も使う場合はサブルーチンを使いますが、スクリプトが長くなって
くると、どこでどのような変数を使ったかを忘れがちで、特に色んなスクリプトを
作成すると、受け取ったデータのデコードや日時の整形など、他で使ったルーチン
を使い回す事があると思います。

その際に、サブルーチンが他の処理に全く関わらず、データを渡すと期待した値
を返すだけの存在であれば、変数の管理がとても楽になります。


ローカル変数は my と local がありますが、localより myの方がより狭い範囲のみ有効です。
例えば my はサブルーチンなどのブロック内のみで有効で、宣言されたサブルーチンの中
から別のサブルーチンなどで呼び出された場合も上書きされません。
local の場合は範囲がもう少し広く、例えばサブルーチンので定義し、別のサブルーチンで
値の上書きができます。
ただ my は Perl5 から実装されていますので、 Perl4 の場合は利用できません。


【ローカル変数を使っていない例】
これだけの内容であれば間違って変数や配列を上書きする事はありませんが、
何度も繰り返し処理をする場合、サブルーチン内ではローカル変数にします。





【ローカル変数を使った例】
サブルーチンの先頭付近で my ($formin,$name,$value,$tmp,@indata); として、使用する変数や
配列をローカル変数としています。
my ($aaa,$bbb) = @_; などとすれば、ローカル変数の宣言と同時に値を入れる事ができます。







変数が上書きされてしまう例


【上書きされる例】
例えば下の例では、変数 $aaa に 5000000 が入っていますので、画面表示の際にも表示されるはず
ですが、サブルーチン内で同じ変数を使っている為、値が上書きされてしまっています。




【ローカル変数を使った例】
下のように、サブルーチン内で使用する変数をローカル変数にする事で、上書きが回避できます。
サブルーチン内で 変数 $aaa を使っていますので上書きされそうですが、 my宣言してあるので、
別の場所で使われている 変数は上書きされません。









関連項目

・ CGIの作成に関する用語
・ CGI作成に関するFAQ


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