| §3 Perlで作るCGIの基本 |
| ブラウザに“こんにちは”と表示する簡単なCGIを作成しよう。 |
|
| ■先頭1行目はperlのパスを指定 ・・・(1) |
| #!/usr/local/bin/perl |
|
perlのプログラムがある場所を指定する。サーバーによって違うが、UNIXは#!/usr/local/bin/perl”または“#!/usr/bin/perl”、
Windowsでは”#!c:\perl\bin\perl.exe”の場合が多い。レンタルサーバーで あれば説明書を見たり、管理者に問い合わせて確認しておくこと。 また、telnetが利用できれば“whereis perl”の命令で確認できる。 |
| ■コメント ・・・(2) |
| # |
|
perlスクリプトの中に注釈であるコメントは、#からその行の終わり までである。どんな処理をしているのか、なぜそのような方法で プログラムしたのか、後でperlスクリプトを見てもわかるような
コメントを書くこと。 |
| ■文末はセミコロン ・・・(3) | ||
| 命令 引き数; | ||
|
perlの文は命令と引き数の組み合わせであり、文末にセミコロン(;)を記述する。 セミコロンのあとに続けて次の命令を記述してもよいが、可読性を良くするため 通常は改行する。
|
| ■HTMLを出力する前にHTTPヘッダを出力 ・・・(3) |
| print "Content-type: text/html\n\n"; |
| CGIで出力しなければいけない唯一のHTTPヘッダで、これから出力する文書の種類を表している。 |
| ■printは出力 ・・・(3) |
| print (出力先) (出力する文字列) |
| printは文字列を出力する命令で、引き数でどこに出力するか、出力する文字列 を指定する。 出力先を指定しなければ“標準出力”と呼ばれる所に出力され、CGIではWebサーバーが標準出力先になっている。 |
| ■文字列 ・・・(3) |
| "文字列" '文字列' |
| 通常、文字列はダブルクォート(")またはシングルクォート(')で囲む。 ▼シングルクォート 書いたままの文字列になる。 print 'hello!\n'; ・・・hello!\n と表示する。 ▼ダブルクォート 後ほど説明する変数や改行などをあらわすエスケープシーケンス文字が置き換えられる。 print "hello!!\n"; ・・・hello! と表示し改行する。 |
| ■エスケープシーケンス ・・・(3) |
| \n |
| 改行やタブなど文字として表すことができない符号をエスケープシーケンスと呼ぶ。 改行(\n)、タブ(\t)などがある。 |
| ■終わりを表す命令はない ・・・(4) |
| perlには終わりを表す命令はないが、どうしても必要であればexitの 命令を使う。 |
| ■CGIを実行する |
| 作成したperlスクリプトをパソコンのWebサーバーで実行させてみよう。 (1)作成したperlスクリプトをEUCの文字コードで保存する。ファイル名は“hello.cgi”とする。 (2)“hello.cgi”をドキュメントルートのフォルダーにコピーする。 (3)スタート→プログラムの中から“Apache Start”を選択してApacheを起動する。 (4)ブラウザのアドレス欄に“localhost/hello.cgi”と入力する。 (5)perlスクリプトにエラーがなければ「こんにちは」と表示される。 |
|
| パンダ君の失敗 こんな簡単なCGIなんて楽勝さ、とお気軽に作って実行したら、が〜ん、動かない。 でも、こういうときにあせってはいけない。先生に教わったように、もう一度じっくりとソースコードを見直す。 なっなんと、文末のセミコロンがコロンになっていた。 これじゃ動かないや。でも、コンピューターって融通がきかないなぁ。 |
![]() |