perlって他の言語にくらべ、Hello World(web経由)の敷居が高いので、そこでつまずいてしまう方が結構いるのではないでしょうか?
答えから先に書きますと
#!/usr/bin/perl print "Content-Type :text/html\n\n"; print "Hello world";
これが一般的な正解です。
ハマってしまう箇所が3カ所あります。
最初の一行目
これは、unixの仕様でperlの仕様ではありません。これの意味は、今から実行するスクリプトは、どれを使って実行しますか?というのを解決する為のものです。
つまり、上記の設定だと、あなたの perl インタプリタ (perl.exe みたいなかんじ) は、 /usr/bin/perl にあります。もし、/usr/local/bin/perl にある場合は、そちらを書く必要があります。
なので、perlが格納されているパスと違う場所を指定してしまうと、どのプログラムで実行するかわからずに、エラーになってしまうってことですね。
Content-Typeは自分で書こうね。
これも実は、HTTP(Web)の仕様であって、perlの仕様ではありません。Webの仕組みとして、まず最初に、ヘッダーと言われる目に見えない(HTMLにも表示されない)情報を送る必要があります。
わかりますね。他の言語では、この実装を自動でやってくれたりするのですが、perlではやってくれません。放任主義なあなたのママのようですね。過保護は良くないです。Webにはヘッダーという仕組みがあるのをママは教えて上げたいのです。そういうことです。この仕組みがあることを知ったあなたは、最初の一歩を、他の初心者の方より抜きでてると言い切ってしまっていいと思います。
実行権限がいるんですよ
今度は権限の話です。これもperlの問題ではありません。 unixのシステムでは、セキュリティ機能があります。誰でも、機能を使えちゃったら困りますよね?
chmod 755 hello.cgi
みたいなコマンドを実行します。FTPでファイルを上げたりしている方は、FTPソフトに属性を変更できる機能があると思いますので、そちらを使ってください。
最後に
あれ、perlのhello worldが難しいのはperl自身の問題じゃなかったんですね。perl の hello worldは、webのしくみ、unixのしくみを知らない間に教えてくれる、スゴイ hello world だったんですね!
perlってツンデレな言語ですね!



Leave a comment