dポイントプレゼントキャンペーン実施中!

perlの勉強中なのですが、
例えばCGIを呼び出した際にある特定の処理により、
変数$hogeにスカラーコンテキストを格納したとします。

そして次にCGIが呼び出されるまで、その$hogeに格納されているスカラーコンテキストは保持されたままでいるのでしょうか?保持されていれば、その保持されていた値を利用してまた新たな値を生成して$hogeに格納できて非常に便利だと思っています。実際、今私がしたい処理は、これができればかなり楽なはずなんです。

ですが、私自身は、保持できないのでは?と思っています。ですので、その保持しておきたい値を外部ファイルにいちいち格納してやる必要があるのかなと思っています。そして必要なときはその値を外部ファイルから得て、そしてまた外部ファイルの値を書き換えてという作業が必要になるのでは?と思っています。

また、保持できるのであるならば、どのようなことをすればリセットできるのでしょうか。つまり、そのサイトから一度離れればいいのでしょうか?

A 回答 (2件)

失礼しました。


基本的には不可能です。

データをファイルに書くなどの工夫が必要です。
    • good
    • 0
この回答へのお礼

ありがとうございます。

とりあえず自分の考えが間違いではないということがわかってホッとしました。

早速コーディング作業に戻りたいと思います

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

お礼日時:2003/05/24 11:08

おっしゃる通りです。


呼び出されたCGIは、呼び出されるたびにサーバ内で1つのプロセスとなり、基本的には他のプロセスに干渉しません。
グローバルな変数として設定した$hogeは、プロセスが消滅するか、プロセス内で明示的に消去するまでは”メモリ”内に保持されます。この変数は、基本的に(同じCGIであっても)他のプロセスからはアクセスできません。
    • good
    • 0
この回答へのお礼

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

私のいう通りというのは、
つまり、変数を次にCGIが呼び出されるまで保持させておくというのは、不可能ということでしょうか?

つまり一度CGIを呼び出すということが、1プロセスということでしょうか?

となると、やはり次のプロセスで使用したい数値は、外部ファイルに書き出しておいて、そのたびに、読み込むということが正解と判断してよろしいでしょうか?

この数点の確認だけ、どうぞ宜しくお願い致します。

お礼日時:2003/05/24 00:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!