CGI-BBS > CGI > Perl > Mod_Perl にて、別のCGIで、変数が同名の場合の問題・・・


カレッヂ
カレッヂ


質問者 まこりん  投稿日 1/24(水) 14:35:33
   Mod_Perl にて、別のCGIで、変数が同名の場合は、うまく処理が
      行えるのでしょうか・・・
        (並列処理でうまくできるのでしょうか・・・)

例えば、
  a.cgi ・・・ 変数  MySQLrecordset (この変数には、100件のレコード)
 a.cgi ・・・ 変数  MySQLrecordset (この変数には、3000件のレコード)
  b.cgi ・・・ 変数  MySQLrecordset (この変数には、2000件のレコード)

        と a.cgiが2つ、b.cgiが1つ 同時に 起動したとします。

        これらの3つのCGIが持っている変数 
                変数名(MySQLrecordset)
        は、同じ名称であるため、うまく処理が行えるかが不安です。

        不安としているのは、変数名(MySQLrecordset) の内容が、
        どれか1つのCGIに限定してしまうということでございます。

例でいいますと、
  a.cgi ・・・ 変数  MySQLrecordset (この変数には、100件のレコード)
 a.cgi ・・・ 変数  MySQLrecordset (この変数には、3000件のレコード)

        の変数セットが、
                変数名(MySQLrecordset)が、

  b.cgi ・・・ 変数  MySQLrecordset (この変数には、2000件のレコード)

        によって書き換えられてしまい、

  a.cgi ・・・ 変数  MySQLrecordset (この変数には、100件のレコード)
 a.cgi ・・・ 変数  MySQLrecordset (この変数には、3000件のレコード)

        の処理ができなくなってしまうというものです・・・

何分初心者なもので、ご教授の程、よろしくお願いいたします。


回答者  [削除]  投稿日 1/24(水) 14:55:27
コンピュータはアドレス番号で記憶しています。
杞憂です。

質問者 まこりん  [削除]  投稿日 1/24(水) 15:03:37

早速の回答大変ありがとうございます。

>コンピュータはアドレス番号で記憶しています。

ということは、問題ないということで解釈してよろしいのでしょうか・・・


何度もお手数をおかけして申し訳ありません。
ご教授の程、よろしくお願いいたします。

回答者  [削除]  投稿日 1/24(水) 15:20:41
>コンピュータはアドレス番号で記憶しています。
よく考えたらこれ理由になってないですね。
質問者 まこりん  [削除]  投稿日 1/24(水) 15:36:53
迅速な回答ありがとうございます。

変数の初期化は、万全です。(Mod_Perlの制約)


何度もお手数をおかけして申し訳ありません。
ご教授の程、よろしくお願いいたします。



回答者  [削除]  投稿日 1/24(水) 21:07:11
逆の考え方(もしも別のプログラムでも同じ変数名を使ってはいけなかったらどうなるか)で説明します。

・同一プロセスの同時実行をするととんでもないことになる。
・ローカル変数という概念が存在しない。
・似たようなプログラムを複数作る場合でも変数名を全て変えなければならない。
・変数名の重複を避けるためわかりやすい名前を変数名に使えない(ある意味心理戦)
・変数名の重複を避けるため全ソフトメーカーが変数名を公開しなければならない(セキュリティ的に大問題)
・変数名の重複を避けるため変数名に社名を入れなければならない(個人はどうするんだ)
・変数名の重複を避けるための団体が設立されて、そこに申請して許可が下りなければプログラムを作成して販売または配布することができない。

こんなことになってしまうので
別のプログラムでも同じ変数名を使っても大丈夫なようにできています。
質問者 まこりん  [削除]  投稿日 1/25(木) 10:43:15

わかりさすいご丁寧なご説明大変ありがとうございます。

おっしゃるっとおりですよね・・・

失礼致しました。

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

このページは終了したので返信(回答)は書きこめません

Web裏技