WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:[CGI-Perlの基礎講座]での質問

0:[投稿] miyomiyo [2002/09/25 09:52 ][環境:UNIX系+NN UNIX系+Perl]

早速ですが、質問をさせてください。
CGI-Perlの基礎講座で「記事表示処理の後半 244〜380目行」におきまして、if (!$flag)という処理があると思います。
質問したいのは$flagでして、流れを見ているとsub axs_check()で$flagが使われているのですが、ここで使われている$flagとif (!$flag)での$flagは意味が違うと思っています。
ただ、localやmyの指定がないので、$flagはグローバル変数だと思い、axs_check()で設定された$flagが使われているのではないかと思ったりもします。

if (!$flag)で使われている$flagのスコープや意味を教えて頂きたく投稿しました。よろしくお願いします。


1:[回答] JTR [2002/09/25 11:08 ]

>$flagはグローバル変数だと思い
確かにグローバル変数ですね。
グローバル変数をワークで使っているだけだと思います。
ワークで使っている以上、各サブルーチンで使う前に初期化が必須ですが、if (!$flag)は、のhtmlサブルーチンで初期化せずにいきなり使っています。バグですか...。>KENTさん。


2:[回答] miyomiyo [2002/09/26 09:17 ]

JTR様、回答ありがとうございます。
一つ意味がわからないのですが、
>グローバル変数をワークで使っている
の「ワーク」っていうのは、テンポラリ変数みたいなもの(一時的に値を保管する変数)のことでよろしいのでしょうか。

また、htmlサブルーチンでは、if(!$flag)ってやっているところと、if($flag==0)ってやっているところが混在しています。if(!$flag)はif($flag==0)と同値だと思うのですが、混在しているのには何か理由があるのではないかと考えたりもしました。


3:[回答] JTR [2002/09/27 10:11 ]

>テンポラリ変数みたいなもの
はい!

>混在しているのには何か理由
プログラムポリシーに難がある?

私は、どちらかといえば($flag==0)派です。


4:[完了] miyomiyo [2002/09/28 16:49 ]

>>混在しているのには何か理由
>プログラムポリシーに難がある?

そんな大それた事じゃないのですが(;^_^A アセアセ…

KENTさんの回答待ちと言う事ですが、ひとまず、ここは読み飛ばして、次に進みたいと思います。

回答ありがとうございました。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World