• 締切済み

***.cgi内のサブルーチンにアクセス

とあるスクリプトを見ると、htmlページのボタンで***.cgi?サブルーチン名 へリンクさせるものがあって、特定のサブルーチンにアクセスするようになっているのですが、自作スクリプトでこのようなことを真似てもそのサブルーチンだけが呼び出されず、普通に***.cgiにアクセスした状態になります。過去の記事で***.cgi?変数名=***として、Perl側でifを使って操作させるというのを見つけましたがそれではなく、直接特定のファイルの特定のサブルーチンにアクセスしているようなのですが、どうすればできるのでしょうか?

みんなの回答

  • yuuki0229
  • ベストアンサー率70% (33/47)
回答No.2

my $q = $ENV{QUERY_STRING}; if($q eq 'myfunc'){ myfunc() } elsif($q eq 'foosub'){ foosub() } これだけのことでしょう。 「変数名=***」のようにも仰られていますが、Perlはそういった処理はしません。 スクリプト中のどこか、もしくはモジュール等でそう(CGIとして利用するとき便利に)なるよう変数に代入されているだけなんです。

show0122
質問者

お礼

↑間違えました。 お礼でした。

show0122
質問者

補足

では何もない状態では不可能ということですね。 あとそうやってアクセスする必要性もなさそうですね・・・ ご回答ありがとうございました。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

?以下の文字列(クエリ)を取得してeval (あるいは、シンボリックリファレンスで呼び出し)してるんじゃないかと思います。

show0122
質問者

お礼

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

関連するQ&A