CGIでPerlのお勉強(その1)
「アンケートかきかき」と「発言かきかき」コーナー開設を記念して、基礎からのCGI/Perlのお勉強シリーズです。不定期発表。
HTMLの時とはえらい違いでした。HTMLって基本的考え方は楽なんです。ところがぎっちょんちょん。CGI/Perlになると、「基本的考え方」からしてなかなか分からない、という状態で、みなさんよろしかったら一緒に勉強しましょうね、っていうシリーズです。なぜ別枠にしないんだ?といえば「完結する自信も目途もない」ってことで、このコーナーなら、「雑記」ですから、やになったらやめちゃえばいい、って安直。
「初心者にもわかりやすい。・・・くどいほど丁寧に説明・・・他のCGIの本を読んで理解できなかった読者にもよくわかる・・・」っていうセリフで買ってしまった本を読んで、う〜難しい・・・。
「Perlで作るCGI入門 基礎編」 結城浩 著(ソフトバンク)¥2千600円。
って本ですけどね。この本、「関数」「変数」「引数」「ファイルハンドル」とかいう専門用語を説明なしに、ポンと使うんだ。「基礎が学べる」ってそこら辺から教えるってことじゃあないのお?
と、文句言っているくせに、めでたく「書き込みコーナー」が出来たのは、完成したプログラムのサンプルがあるから。また、それを著者のページからダウンロード出来たからでしょうね。プログラミングの一番の敵は、タイプミス+うち忘れ・・・ぐす、私よくやる・・・。;のつもりで:うってたり・・・。
(ちなみに、http://www.st.rim.or.jp/~hyuki/cgibook/です)(ついでにもとほほのWWW入門の中のPerlの項目も参考になります)
実際、この本、よく分からないなりに、プログラムをちょこちょこっと修正すれば使えるようになってます。でも、それじゃ面白くないんで、だいぶ修正+改変しました。さあ、これがそのプログラムだ!!
とやりたいんですが、それやってもあまり意味ないんですよね。このページは基本的に「身内向け」のもんで、サーチエンジンになんて登録するつもりもないし(あ、FairuzのページはずうずうしくYahoo!に登録を申し込んでしまいましたが・・何も言ってこない)
何の話だったかというと、プログラムの説明しても、試す環境がなかったら面白くない、ってことですね。HTMLでもCGI/Perlでも、自分で作ったソースが動いてくれなきゃ、人のプログラム読んだだけじゃ面白くないからです。ということで、第一回は、自分のマシンでCGI/Perlを動くようにするの巻です。
まず、CGI/Perlのプログラムをダウンロードしてくる必要がありますが、その前に、私たちはいかにホームページを見ているかの説明。
ブラウザを立ち上げ、住所を打ち込んだり、リンクをたどるとページが表示される
って、あたりまえですが、その場合、ブラウザは接続したWWWサーバにhtmlファイルを送ってくれるよう要求するわけです。WWWサーバはその要求に応えてhtmlファイルを送る。それをブラウザが表示する。
つまり、htmlファイル(およびJavaScript)を処理するのはブラウザです。ですから、htmlファイルはブラウザさえあれば自分のマシンで表示させることができます。
htmlを扱うのに特殊なソフトは必要ありません。私の契約しているプロバイダみたいに、CGIが使えないWWWサーバだったら、自分のマシンでも基本的に同じこと。(多少動作が違うんだが・・・・特に問題ない)
で次、CGIではだいたいPerlというプログラムが使われます。ということで
http://www.perl.com/pace/pub/perldocs/latest.html
ってとこでUnix,Windows,Mac用のperlが入手できます。これでPerlは動きます。他のOSは知りませんが、Windows版は特にとまどうこともなく使えます。Dosプログラムですけど・・・。(他の使い方もあるんでしょうが)
perl ***.cgi + RETURN ってやるとプログラムの間違いを行数付きで指摘してくれます。便利。間違ってなかったら実行します。
しかし、CGIは使えません。使うためには自分のマシンをWWWサーバにする必要があります。
Error 403このディレクトリのインデックスリストは見られません。
AnWeb/1.17 |
/ のインデックスリストcgi/ Directory 1999/06/24 22:21:18 cgi-bin/ Directory 1999/06/24 22:21:18 httpd-docs/ Directory 1999/06/24 22:21:18 imagemap/ Directory 1999/06/24 22:21:18 isapi/ Directory 1999/06/24 22:21:18 maps/ Directory 1999/06/24 22:21:18 prog/ Directory 1999/07/04 14:10:08 Scripts/ Directory 1999/06/24 22:21:18 SSI/ Directory 1999/06/24 22:21:16 anctl.exe 50 kB 1998/01/24 16:49:10 Ansvc.exe 50 kB 1998/02/01 10:08:20 errors.log 2 kB 1999/07/05 01:40:02 helper.exe 56 kB 1999/06/05 08:46:22 httpd.exe 967 kB 1999/06/06 16:39:26 httpd.log 27 kB 1999/07/05 01:40:02 proxy.dll 178 kB 1999/06/05 08:46:28 readme.html 6 kB 1999/06/06 17:05:12 Service.dll 41 kB 1998/01/24 16:49:06 AnWeb/1.17 |
と入れてくれます。私は一応、そこにprogというディレクトリを作って、そこにも.www_browsableを置いて入っていくことにしています。スマートとは言えないやりかたですが、これで設定をつつかずに使えるようになった。httpサーバの詳細を知っている人からみたら「なんちゅう」というやり方かもしれませんが・・・。
MacのHTTPソフトはどこにあるのか私知りません。まあ原理的には同じことだとは思いますが・・・・。
あ〜疲れた。読む方も大変だったかもしれませんが、書く方はもっと・・・。やっぱCGI/Perlの話はやめようかなあ。HTMLに比べて話複雑。