Hello, world!

最初の Perl プログラム(Linux)

昔から言語を勉強するときに最初に学ぶことは, 画面に「Hello, world」と出力するプログラムを作ることです。 日本語なら「こんにちは!」と出力すればいいでしょう。 Perl なら次のようになります。

#! /usr/bin/perl

print "こんにちは!\n";

これを hello.pl というファイル名で作ります。

次に,このプログラムに実行許可を与えます。

chmod 755 hello.pl

hello.pl を実行するには次のように打ち込みます。

./hello.pl

画面に「こんにちは!」と表示されることを確認して下さい。

最初の CGI(Linux)

これはまだ CGI ではありません。 これを CGI にするには,次のように直します。

#! /usr/bin/perl

print "Content-type: text/html\n\n";
print "こんにちは!\n";

念のためこれも実行してみましょう。

./hello.pl

うまくいったなら,これをサーバに送り,ブラウザで動作を確認しましょう。

★サーバによっては hello.cgi という名前にしないと後で CGI として実行できないことがあります。 また,プロバイダによっては CGI を禁止しているところがあります。 松阪大学のサーバでは現在 CGI を許可しています。

Windows の場合

Windows の場合は FFFTP などの FTP ソフトでサーバに送ります。 このとき,テキストモード(アスキーモード)で送る必要があります。 バイナリモードで送るとうまくいきません。

その理由をちょっと説明しておきます。 パソコンの行末は CR LF ですが Unix の行末は LF だけです。 このため,パソコンで頭に #! /usr/bin/perl と書いたつもりでも Unix からは #! /usr/bin/perlCR と見えてしまい, /usr/bin/perlCR というコマンドはないというエラーになってしまうわけです。

文字化けする場合

print "Content-type: text/html\n\n"; を次のどちらかにしてみましょう。

print "Content-type: text/html; charset=SHIFT_JIS\n\n";
print "Content-type: text/html; charset=EUC-JP\n\n";

前者はシフトJIS(Windows で作った場合),後者はEUC(Linux で作った場合)です。


奥村晴彦

Last modified: 2004-12-24 12:50:56