|
CGIスクリプトのソースコードを見ると、
sub xxx
という文字をあちこちでみかけます。これがサブルーチンです。サブルーチンの定義を書くと難しくなるし、私自身、理屈から学んだわけではないので、やめときますが、簡単に言うと、「一つのCGIスクリプトで、複数の処理を行なわせる」ことです。例によって、正式な定義ではありませんし、この説明を、詳しい人に披露すると笑われますのでご注意を・・・
■なぜ、一つのCGIスクリプトで複数のHTMLを生成できるのか・・・
私が初心者の頃、一つのCGIスクリプトで、複数のHTMLを表示できるのがとっても不思議でした。私が初めて作成したスクリプトは、画面ごとにCGIファイルが存在し、全部で10個近いファイルを作成した記憶があります。
参考書を読んでも、再帰サブルーチンだのなんだのと難しいことは書いているのですが、一つのCGIスクリプトで複数のHTMLファイルを作成する方法なんか書いていないし、なかなか解決しなかったものです。
そんなある日、Kent-Webのスクリプトを解析した時、はじめて理解できました。
それは・・・(記憶はあやふやなのであくまで例ですが)
・
・
・
<input type=hidden name=mode value=admin>
・
・
・
<input type=submit value=管理モード>
というHTMLタグ。
で、スクリプト内の文字列を検索すると・・・
if ( $in{'mode'} eq 'admin' ) { &admin; }
というソースコードが!
ひょっとして・・・
再度検索すると、
sub admin { ・・・・
という文字列を見つけました。
そのソースには、管理モードのHTMLタグが書かれていました。
これだ!
いやぁ〜〜〜目からうろことはこのことです。
めちゃ感動しました。
その瞬間、サブルーチンの使い方を覚えました。(最も基本的な使い方ですが)
これで、一つのCGIスクリプトでどうして複数のHTMLを表示出きるのか。そのなぞが解けたのでした。
|