+-----中級編/6-----+
真里:加藤真里 シレ:シレスト=ノイデルファーム
シレ:いきなりですが、下のスクリプトを打ってみましょう。
#/usr/local/bin/perl print "Content-type: text/html\n\n"; |
真里:ほ、ホントーにいきなりだね、、、
シレ:はい。前回予告した通り、とりあえず書いてみることにしました。打てましたか?
真里:うん。確か、printってとりあえずは何か表示させるための命令だったよね、確か。
シレ:そのとおりです。すると、だいたいどうなるかはわかりますね?とりあえずファイルとして保存して、実際に自分のパソコンに導入したPerlで実行してみてください。(Windows/UNIXならKTermやDOSプロンプトなどからperl
[ファイル名]
MacならMacPerlを起動してScriptメニュからRun
Scriptを実行)
Content-type: text/html <HTML><BODY
BGCOLOR=#FFFFFF> |
……実際に上のように表示されましたか?
真里:ふえぇぇぇん、、、よくわからん英語が出てきたよぉぉぉ……なんかさい先よくないよぉぉぉ……
# syntax error, near "print"
File 'Untitled'; Line 4
# Execution of Untitled aborted due to compilation errors.
シレ:慌てないで下さい、これはPerlからの「間違ってるよ〜」という警告です。とりあえず、日本語に訳してみると下のようになりますね。
#
"print"のあたりで文法ミスがあったりするんですね〜。
'Untitled'というファイルの4行目かな?
#
Untitledというスクリプト、解釈できなかったんで止めちゃったよ、ゴメンね。
……ホントはかなりニュアンス違いますけどね(汗)
で、理由は翻訳の通りです。4行目とその近辺(3行目あたりもあやしい)を探してみてください。
真里:……あ、セミコロンつけるの忘れてた。ごめん……と、これでよし。動いたよー。
シレ:それでは、これを今度はサーバの方に送って動かしてみましょう。「パーミッション」の確認と「Perlのパス」の確認を忘れないで下さいね(→忘れた人は初2 初4へ)
真里:よーし、Executeに全部チェックつけて、っと。おっけー。って何これ、文字大きすぎるってば、、、
はろーわーるど!! |
シレ:はい、これでまずは第1ステップ、クリアーです。文字を表示することだけしかできませんが、それでもあなたが作った自作Perl CGIですよ。
真里:わぁぁぁい、できたできた〜〜!
シレ:さてここで新しく出てきたことをちょっと解説しておきます。といってもprintばかりしか書いてませんから、別に問題ないですね。\nというのは改行だということも少しどこかで話したような気がしますし。ポイントはここです。
print "Content-type: text/html\n\n";
……Content-type: text/htmlの後で改行、さらにもう1つ改行して空の行を1つ作ってありますね。
真里:……うーん、Content-typeってことだから……(辞書ひきひき)……「中身の形式がtext/html」?
シレ:大正解です!……ちゃんと英語勉強してるんですね、見かけによらず(汗)
真里:最後の一言はよけいだってば、、、
シレ:ま、と、とりあえず(汗)正解ということで、これは「今からHTMLのデータを送りますよ〜」という合図です。これを書かなかったり、空の行を入れていなかったりすると……
500 Internal Server Error. |
……などと怒られてしまったりしますのでご注意を。
ちなみにこの500ナントカというメッセージはパーミッションの設定ミスや先程のような文法ミスなどでも起こります、くれぐれもご注意を。
真里:なんだか英語がいっぱい出てきたね。
シレ:気のせいでしょう(汗)……中学で習う程度の文法と辞書さえあればなんとかなります。
今回はとりあえずここまでです。次回まで、とりあえず上のスクリプトのprint文を増やして、他のタグを入れて文字の色を変えたりして遊んでみてください。
[次回に続く……]