CGIを動かしてみよう

ここでは、Perl/CGIプログラミング基礎知識を連載していきます。

CGIプログラムを自作してみたい方、はじめてPerlプログラミングに挑戦する方に役立てばさいわいです。

  1. 編集前記
  2. Perl/CGI作成環境と動作環境の構築
  3. Perl/CGIプログラムの入手と設置
  4. Perl/CGIプログラム解説
  5. 編集後記

編集前記

今回は最初ということで、なぜPerl/CGIプログラミング学習をお勧めするのかについて書いてみようと思います。

それはもちろん、Perl/CGIプログラムを自在に操ることができれば、いろいろなことができるようになるからなのですが…。

Perl/CGIプログラムを扱えるようになって、一番実感することは、パソコン上で自らを表現する手段が増えたというところです。

今までできなかったことができるようになるわけですから、当然ですよね。

もっと具体的に、Perl/CGIプログラミング学習をする利点についてお話しますと…。

それはPerl/CGIプログラムが、「普及しているプログラミング言語だから」ということと…

「今すぐにでもはじめることができ」

「プログラムのサンプルも容易に入手することができ」

その結果「Perl/CGIプログラムでできることが豊富にある!」ということが言えるからです。

これらが大きな理由です。

ひとつひとつ解説していきますと…。

まず、Perl/CGIプログラムというのは、パソコン上で書いたテキスト形式のプログラムコードを、インターネットサーバーに設置するだけですぐに動かすことができる仕組みになっています。

つまり、ウィンドウズ付属のメモ帳で書いたプログラムであっても、インターネットサーバーにアップロードして呼び出してやれば、立派なPerl/CGIプログラムとして動いてくれるのです。

あなたが本気で「Perl/CGIプログラムを作ってみよう!」と思いさえすれば…。

この記事に掲載されているプログラムコードをメモ帳にコピーし、Perl/CGIファイルとして保存しサーバーにアップロードすれば、プログラム完成なのです。

本当に今すぐにでも手軽にはじめることができるのです!

ほかにも、PHPなどインタプリタ言語に属するプログラミング言語であれば、同じように今すぐはじめることができますが、おすすめはPerl言語です。

それ以外のコンパイラ言語や中間形式言語に属するプログラミング言語では、Perl言語のように今すぐはじめることはできません。

なぜならパソコンというのは、前述したようなテキスト形式でプログラムファイルを作成しただけではプログラムとして実行できない仕組みになっているからです。

プログラムコードが書かれただけのファイルというのは、パソコンから見れば、「メモ帳に書かれただけの文字列」に過ぎないからです。

ではどうすればよいのか?

パソコン上で何らかのプログラムを動かすためには、作成したプログラムファイルを機械語に翻訳するコンパイルという作業が必要なんです。

身近なところでは、C言語というプログラムが代表的なところです。

C言語もPerl/CGIプログラムのように、プログラムコードを書く段階ではテキスト形式のデータに過ぎません。

しかし、プログラムコードを書き終えた後は、コンパイラという機械語に翻訳するアプリケーションを使って特別な処理を施し、機械語で書かれた実行ファイルを作成します。

C言語はそこまでしてやっとパソコン側で動かせるようになります。

ということは、C言語を学習するためには、コンパイラと呼ばれるソフトウェアを入手し、パソコンにインストールする必要があるのです。

そうなると、今すぐはじめることはできませんよね。

このように書くと…

「いやいや、UNIX系のサーバーならコンパイラが付いてるじゃないか」

と思う人がいるかもしれませんが、レンタルサーバーでは自由にコンパイラを使えるところは少ないです。

なので、あまり実用的ではありません。

やはり、Perl言語でプログラムコードの書かれたファイルを作成し、CGI扱いでサーバーに設置し動かした方が簡単だし今すぐはじめられるのです。

これで、Perl/CGIプログラムは「コンパイル」という作業が無いので、手軽にはじめることができるということがわかっていただけたかと思います。

もう少しプログラムがパソコン(コンピューター)上で実行されるプロセスについてお話しましょう。

パソコンの頭脳(CPU)というのは、基本的に機械語で書かれたものしか実行することができません。

あなたのパソコンはもちろん、インターネットサーバーも同じで、機械語で書かれたデータしか実行できないようになっています。

ではなぜPerl/CGIプログラムファイルというのは、メモ帳で書かれた文字列に過ぎないはずなのに、インターネットサーバーに設置すると実行されてしまうのでしょうか?

先ほど、「パソコンの頭脳(CPU)は、機械語で書かれたデータしか実行することができない」と書きました。

それなのに、Perl/CGIファイルに関しては、プログラムコードのままでも動くというのは矛盾ですよね。

実はPerl/CGIプログラムファイルというのも、インターネットサーバー上で実行される直前に、Perl/CGIプログラム専用のコンパイラによってこっそり機械語に翻訳されているのです。

Perl/CGIプログラム作成者側の負担を最小限にするために、インターネットサーバー側で、CGI実行時にコンパイラと実行を担当してくれているのです。

ですから、Perl/CGIプログラムに関しては、プログラムコードのままインターネットサーバーにアップロードしてもかまわないというわけなのです。

なんにしても、Perl/CGIプログラムを作成していく側から見れば、プログラムコードだけで動いてくれるのですからとっても楽ですよね。

ちなみに、Perl/CGIプログラムコードを機械語に翻訳するコンパイラのことを、Perlパッケージといったりします。

そしてこのPerlパッケージというのは、無料で配布することが許可されているプログラムなんです。

プログラムコードのままでも普通のプログラムとして実行してくれる便利な仕組みが無料で配布されているわけですから…

サーバー管理者としては、利用者のサービス向上の一環としてインストールしておきたくなりますよね。

これが、Perl/CGIプログラムが普及したきっかけとも言うべき現象です。

おかげで今では、ほとんどのインターネットサーバーで、Perl/CGIプログラムが使えるようになったわけです。

あと2つ、あなたにPerl/CGIプログラムをお勧めする理由をお話したいのですが…。

ここまででかなりスペースを使ってしまったので、続きは編集後記で。

Perl/CGI作成環境と動作環境の構築

まずは、Perl/CGIプログラムを作成し、動作チェックのできる環境を構築しましょう。

Perl/CGI作成環境の構築

Perl/CGIプログラムの作成環境を構築するには、3種類のフリーソフト(無料で使えるソフトウェア)を、あなたのパソコンにインストールする必要があります。

どのソフトウェアも、Perl/CGIプログラム作成において、必須ではありませんが、あるとプログラミング作成作業が楽になります。

テキストエディタ

1つ目は、Perl/CGIプログラムコードを書く専用のテキストエディタです。

テキストエディタ「TeraPad」

https://forest.watch.impress.co.jp/library/software/terapad

このテキストエディタというのは、ようするにウィンドウズ付属のメモ帳に毛がはえたようなプログラムのことです。

でも、その毛の生え方がはんぱではないわけです(笑)。

まず、行番号が表示されるという機能があります。

Perl/CGIプログラムを作成していくと、数百行という大きなプログラムを作成する場面も出てきます。

そしてもし、そのプログラムコードの記述方法に何らかの誤りがあり、エラーが出たとします。

そんなとき、パソコンの画面には、エラーが出た行番号が表示されるときがあります。

もしその行番号が、何百何十何行目と表示されたとき、あなたが1行目から数えていては日がくれてしまいますよね(笑)。

はじめから行番号が表示されていれば、単純に頭から数える必要は無いわけです。

次に、複数の文字コードに対応するという機能があります。

文字コードとは、パソコンで文字を表現するために使用する、規則的に割り当てられた信号パターンのことです。

例えば、この信号パターンだったら「あ」などと決まっているわけです。

これだけだと話は簡単なのですが、実はもう少し複雑です。

文字コードには、同じ日本語でも、「SHIFT_JIS」「EUC」とか「UTF-8」など、さまざまな種類があります。

つまり、同じ「あ」という文字を表現するだけでも、いろいろな文字コードの種類(信号パターン)があるわけです。

そしてこの文字コードをパソコン側で間違って解釈してしまうと、文字化けが発生するのです。

例えば、「SHIFT_JIS」コードの文字を誤って、「EUC」コードとして解釈してしまうと文字化けが発生するわけです。

「TeraPad」などのテキストエディタでは、複数の文字コードに対応していますから、自動で文字化けを回避してくれます。

この文字化けは、あなた一人がプログラムを作成している場合であれば問題ありませんが、他人のプログラムを見たり改造する場合には、注意しなくてはいけません。

なぜなら、他人が何の文字コードを使って、Perl/CGIプログラムファイルを作成しているのかが分からないからですね。

ちなみに、ひとつのプログラムファイル内に複数の文字コードが混在すると、エラーの原因になりますので注意しましょう。

今回たまたまテキストエディタの紹介で「TeraPad」を紹介しました。

でも、「TeraPad」以外にも優れたテキストエディタはたくさんあります。

Perl/CGIプログラミングに慣れてくると、いろいろとこだわりも出てくると思うので、いろいろなテキストエディタを使ってみてくださいね。

FTPソフト

次に必要になるのが、FTPソフトと呼ばれるソフトウェアです。

NextFTP(Windows)

http://www.toxsoft.com/nextftp/

このFTPソフトというのは、あなたのパソコンとインターネットサーバーをFTP接続してくれるソフトウェアです。

FTPとは、「File Transfer Protocol(ファイル・トランスファー・プロトコル)」の略です。

プロトコルというのは、通信する上での約束事のことで、通信規約などとも言われます。

この通信規約というのは、FTP以外でも、普通にインターネット上のウェブページを見る時や、メールを送受信するときにもかかわってきます。

わかりやすくするために、身近な例を挙げて説明します。

たとえば、日本人とアメリカ人が会話をするというケースを考えてみましょう。

この2人が会話をするためには以下のようなルールが決まっている必要があります。

日本語で会話するのか?

英語で会話するのか?

それとも、フランス語で会話するのか?(なさそうであるかも(笑))。

さらに、お互い共通の言語が決まっても、いきなり話ができるわけではありませんよね。

どんな媒体を使って話をするのか?

ということも決めておかなくてはいけません。

たとえば、英語で話をすることが決まっても、日本人が、英語に関して読み書きはできるが、聞き取りや話すことができない人であれば…。

直接話をする場合は、筆談になりますし、離れていれば、メールになるわけです。

このように、お互いに共通したルールを決めておかないと、話にならないということはわかりますよね。

これがコンピューターの世界で言うところの通信規約です。

ようするに、FTPソフトとは、あなたのパソコンとインターネットサーバー間を、ファイル転送や削除などを行うことのできる接続言語でつないでくれるソフトウェアなんです。

お互いに異なるルールで動いているパソコンを、共通ルールの接続方式を使って接続し…。

お互いに異なるルールを、ユーザーに感じさせることなく、スムーズに物事を進めていける環境を提供するのが、FTPソフトの役目なわけです。

では具体的に、あなたのパソコンとインターネットサーバーのルールの違いについて、少し説明しておきます。

あなたのパソコンもインターネットサーバーも同じコンピューターですが、大きく違う部分としては、オペレーティングシステム(OS)の違いがあげられます。

パソコンを使っているほとんどの人が、Microsoft社のWindowsを使っています。

中には、Apple社のMacintoshを使っている人もいますが…。

大きく分けてだいたいこの2種類のOSで占められています。

これに対して、インターネットサーバーのほとんどが、UNIXというオペレーティングシステムを採用しています。

FTP接続をするということは、このいずれかのオペレーティングシステム同士が、ある一定のルールの下でつながれるということです。

そしてFTPソフトを使うと、これらOSの違いを感じることなく、ファイルのやり取りができることは先ほど学習しましたね。

確かに、FTPソフトを使うと、簡単にお互いを接続することができるのですが…。

Perl/CGIプログラムを作成しFTP転送をする際、ひとつ注意しなくてはいけないことがあるので、この機会に説明しておきます。

それは、改行コードの違いを理解しておくということです。

改行コードとは、そのものズバリ、改行を表した信号パターンのことです。

イメージ的には、Microsoft社のWordで改行を入れた際に現れる矢印マークのようなものです。

この改行コードが前述のオペレーティングシステムごとに違います。

なので、FTPソフトでPerl/CGIなどのテキスト形式のファイルをアップロードするときは、改行コードを転送先のサーバーの仕様に合わせる必要があります。

でないと改行が正しく認識されず、エラーとなってしまいます。

それ以外の文字列ではないファイルたとえば、画像や音楽ファイルなどはそのファイルの性質上、改行コードを変化させることなくFTP転送をします。

FTPソフトは、このあたりの面倒な変換処理を自動でやってくれます。

しかし、まれにこの仕組みがうまく動作しないでエラーとなる場合があるので覚えておきましょう。

まぁそんなときは、もう一度、設定を見直してFTP転送すれば解決します。

ちなみに、転送先のサーバーに合わせて改行コードを変化させる指定のことを、テキストモードまたはASCIIモードといいます。

そうではなく何も変化させない指定のことをバイナリモードといいます。

他にも、FTPソフトでは、パーミッションというファイルやフォルダの操作権限を設定することができます。

パーミッションについては、この後実際にPerl/CGIプログラムを設置するときに改めて解説します。

さらにFTPソフトによっては、前述しました文字コードを変換してくれる機能を持っているものもあります。

FTPソフトもいろいろな種類があるので、いろいろと使ってみてくださいね。

圧縮解凍ソフト

次は、前の2つに比べて重要度は低いのですが、あるとそれなりに便利なのでここで紹介しておきます。

圧縮解凍ソフト「Lhasa」

https://forest.watch.impress.co.jp/library/software/lhasa

圧縮解凍ソフトウェアも山のようにありますが、何かひとつあなたのパソコンにもインストールしておくことをお勧めします。

インターネットで配布されているPerl/CGI関連のファイルというのは、圧縮してあるのが普通です。

その圧縮されているファイルを解凍するためには、その圧縮形式に対応した解凍プログラムが必要です。

インターネットで配布されている圧縮形式のほとんどは、「.lzh」や「.zip」形式ですので、まずはこの2種類の圧縮形式に対応した解凍ソフトを持っていれば大丈夫でしょう。

Perl/CGI動作環境の構築

最後に、Perl/CGIプログラムを実際に動かすインターネットサーバーを用意しておきましょう。

すでにホームページスペースを持っていて、そこでPerl/CGIプログラムが動作するという場合であれば、そこで問題ありません。

しかし、Perl/CGIプログラムを動作させる環境を持っていない場合には、この機会に、ホームページスペースを用意しておきましょう。

レンタルサーバーや、インターネットサーバーなどで検索するとたくさんでてくるので、よさそうなところを選んで契約しましょう。

そのときチェックしておかなくてはいけないところは、当然Perl/CGIプログラムが使えるかどうかというところです。

Perl/CGIが使用可能であることに加え、Sendmailも使用可能なところであればさらによいです。

Sendmailとは、Perl/CGIプログラムから電子メールを送信することのできるソフトウェアのことです。

SendmailとPerl/CGIプログラムを組み合わせることにより、ウェブサイトのお問い合わせページにあるような 自動メール返信システムを簡単に作る ことができます。

Perl/CGIプログラム作成の環境作りとしては、まずはこれだけそろっていれば問題ないでしょう。

Perl/CGIプログラムの入手と設置

それでは次に、実際にPerl/CGIプログラムを入手して、あなたのインターネットサーバーに設置して動かしてみましょう。

プログラムの入手

まずは、Perl/CGIプログラムファイルの入手ですね。

ここから下の部分をコピーして、テキストエディタに貼り付けてください。

#!/usr/bin/perl

print "Content-type: text/html\n\n";
print "Perl Programming";
exit;

↑ここまでがPerl/CGIプログラムです。

テキストエディタに貼り付けたら、「test.cgi」という名前で保存してください。

保存ができたら、このPerl/CGIプログラムを動かすサーバーの環境に合わせて、Perlのパスを編集します。

Perlのパスとは

1行目に書かれている「#!/usr/bin/perl」はPerlのパスといいます。

このPerlのパスというのは、Perl/CGIプログラムを設置するサーバーによって異なる場合があります。

Perl/CGIが利用可能なレンタルサーバー会社のホームページを見ると、Perlのパスというのが必ず書いてありますから、その記述に従ってパスを編集してください。

具体的には…。

#!/usr/local/bin/perl
#!/usr/bin/perl

このどちらかに該当する場合がほとんどです。

必ずPerlのパスは、レンタルサーバー会社の指定のものを使用するようにしましょう。

なぜなのかについては、後述します。

Perlのパスを変更する必要ない場合はそのまま、変更する場合はパスを書き換えて保存しなおします。

これでPerl/CGIのプログラムファイルが完成しました。

プログラムの設置

それでは完成した「test.cgi」をFTPソフトを使って、インターネットサーバーに設置しましょう。

サーバーにファイルを転送(アップロード)するときは、FTPソフトの転送モードをテキストモード(アスキーモード)にしておくことがポイントです。

パーミッションの設定

ファイルの転送が終わったら、次に、Perl/CGIプログラムファイルに実行権を与えます。

実行権とは、先ほど転送した「test.cgi」を、サーバー上で実行しても良いという許可のことです。

この許可のことを、パーミッションといいます。

いくら素晴らしいPerl/CGIプログラムファイルだったとしても、このパーミッション設定で、実行権が与えられていなければサーバー上で動かすことはできない仕様になっています。

パーミッションの設定は、基本的に数値で設定します。

どのファイルでもサーバーに転送しただけでは、パーミッションは「644」が与えられているはずです。

サーバーの設定によって違う場合もありますが、だいたい600番代が割り当てられてるのが普通です。

Perl/CGIプログラムファイルの場合は、この値では小さいので、パーミッションを変更します。

実はパーミッションの割り当て方もサーバーによって異なっているので一概には言えないのですが…。

だいたい「755」「705」「701」などの数値を割り当てれば問題なく動くはずです。

ちょっと良いサーバーになると、Perl/CGIファイルを転送しただけで、自動的にパーミッションを適切な値に設定してくれるものもあります。

これで、Perl/CGI設置が完了しました。

Perl/CGI動作テスト

では実際に、Perl/CGIプログラムを動かしてみましょう。

インターネットエクスプローラなどのウェブブラウザを立ち上げて、先ほどサーバーに転送しました「test.cgi」にアクセスしてみてください。

アドレスは、「http://~/test.cgi」という感じになるはずです。

そして「Perl Programming」と表示されれば成功です。

それ以外の文字が表示された場合は、CGI動作時に何らかのエラーが発生している可能性が高いので、今までの作業でミスがなかったかをもう一度確認しなおしてみてください。

エラー無く「Perl Programming」という文字が表示された場合は、作業手順が完璧だったという証拠です。

おめでとうございます!

これで、Perl/CGIプログラムファイルを作成し、サーバーに転送し動かすことができるようになりました。

<戻る>

Perl/CGIプログラム解説

それでは、先ほど作成しましたPerl/CGIプログラムコードについて解説します。

Perlのパス
#!/usr/local/bin/perl
#!/usr/bin/perl

サーバーの環境に合わせて書き換えましたPerlのパスについて解説します。

Perlのパスとは、一言で言うならPerlプログラム専用のコンパイラまでのパスを示したもののことです。

Perlプログラム専用のコンパイラについては、編集前記で少し触れましたね。

編集前記で解説したことを振り返ってみましょう。

パソコンやサーバーの頭脳とも言うべきCPUは、機械語で書かれたものしかプログラムとして実行してくれないということでしたね。

そして、Perl/CGIがプログラムコードだけで動作するのは…。

ファイルが呼び出された瞬間に、サーバー側で先にこっそりコンパイルを行い、機械語で書かれたプログラムファイルを生成しているからでしたね。

ということは、Perl/CGIプログラムコードが書かれているファイルを、直接サーバーの頭脳に送っても、プログラムとして実行してくれないということはわかりますよね。

サーバーの頭脳にPerl/CGIプログラムコードが書かれたファイルを送る前に、どこかで機械語に翻訳してくれるコンパイラを通す必要があるわけです。

もう、おわかりですね。

このPerl/CGIプログラムコードが書かれたファイルを、こっそりコンパイルしているコンパイラまでのパスが、Perlのパスなのです。

ものすごく大雑把に流れを説明するなら…

1、サーバーに設置したCGIが呼び出される

2、サーバーはCGIファイルの一行目に書かれているPerlのパスを参照しPerlパッケージまでのパスを把握

3、二行目以降のプログラムコードをPerlパッケージでコンパイルし機械語で書かれたファイルを生成

4、生成されたファイルをサーバーが実行

こんな感じですね。

Perl/CGIプログラムの規則

ここからは実際のPerl/CGIプログラムコードの解説になりますが、プログラムコードを書く上で、いくつか共通したルールがあるのでここで先に解説しておきます。

まずは、Perl/CGIプログラムに限った話ではないのですが、「こんな操作をしなさい」というような命令のことを、プログラミングの世界全般では、関数と呼びます。

プログラミングの世界で言うところの関数というのは、とても説明しにくいのですが、一言で言うなら、命令文そのものまたは、小さい命令文のかたまりを指します。

わかりやすく、プログラムの動きを指示するものすべてを関数だと思っていただいても問題ないくらいです。

もうひとつは、Perl/CGIプログラムの書き方についてです。

Perl/CGIプログラムコードを書くときは、行の右端に「;」をつけるというルールがあります。

これは必ず書かなくてはいけないというものではなく、書かなくてもよい場合もありますが、1行で命令文が完結する場合や、命令文が細かく分割できる場合には、まず書かなくてはいけません。

Perl/CGIプログラミングを学習していけば、少しずつ意味がわかってきますので安心してください。

それでは、具体的に、Perl/CGIプログラムコードを見ていきましょう。

print命令(関数)

print命令(関数)は、Perl/CGIプログラミングをする上で、頻繁に使われるので必ず覚えておきましょう。

Printとは、Perl/CGIプログラムから、何かを出力させるときに使用する命令(関数)のことです。

printを使用すると、画面出力であったり、音の出力であったり、ファイルへの書き込みであったり、Sendmailなどの外部プログラムにもデータをわたすことができます。

print命令(関数)の使用用途はたくさんありますが、使用方法はいたって単純です。

printを宣言して、その後ろに出力させたいタイプや、出力させたいデータを持ってくるだけです。

場合によっては、ファイルハンドラを間にはさまなくてはいけないとか、出力データは「"」または「'」ではさまなくてはいけないとか、いろいろ細かいルールはあります。

printの役割とは、そのものズバリ、「何かを出力させること!」です。

ですから、printの後にくるものというのは、出力させたいものを定義しているもの(出力タイプ)か、出力させたいデータそのものがくると考えた方がシンプルでわかりやすいです。

それでは、このあたりの理屈を踏まえた上で、今回のPerl/CGIプログラムを見てみましょう。

printの後に続く「"」に囲まれている部分が出力させたい対象です。

print "Content-type: text/html\n\n";
print "Perl Programming";

最初のprintで出力させている「Content-type: text/html\n\n」とは、今から画面出力を行いますよという宣言です。

どこに宣言しているのかというと、Perl/CGIプログラムが動いているサーバーにです。

サーバー側は、この宣言を受け取ると、画面表示の準備をします。

この宣言を分解すると、「Content-type: text/html」と「\n\n」に分けることができます。

コンテンツタイプ

「Content-type: text/html」というのは読んだ意味そのままで、コンテンツのタイプ(種類)は、html形式のテキストデータですよという意味です。

ある程度正しいhtmlで、ホームページを作成したことのある人なら、どこかで見た覚えがあるはずです。

この「Content-type」というのは、ヘッドタグで囲まれた部分のMETAタグ内で、文字コードの種類と一緒に宣言されています。

ホームページのMETAタグ内の意味と今回の宣言の意味は、書き方こそ違えど、2つとも同じ意味を指しています。

そして、この「Content-type: text/html」の出力で大切なところは、それ自体が直接あなたのパソコンの画面に出力させているものではないというところです。

では、いったいどこに向かって出力させているのかというと、実行ファイルからインターネットサーバーに向かって出力させています。

そしてこの「Content-type: text/html」を受け取ったインターネットサーバーは、HTML形式のテキストデータをアクセスしてきたインターネットエクスプローラなどのウェブブラウザに返すので す。

インターネットサーバーも、print関数が呼び出されたころというのは、実はどんな形式でどんなデータを出力してよいのかわかっていません。

画面出力をしたいのか?

クッキー出力をしたいのか?

ファイル出力をしたいのか?

どれもprint関数で出力することができるため、Perl/CGIプログラムが何を出力させたいのかが、これだけではわからないわけですね。

なので、「Content-type: text/html」で出力データが何であるかを、出力の最初に宣言してやる必要があるわけですね。

改行文字

残りの「\n」というのは、改行文字を表しています。

つまり、「\n\n」と2回改行文字が続いているので、コンテンツタイプを宣言した後は、改行を二回出力しなさいという意味です。

改行を2回入れることで、コンテンツタイプの宣言と、この後に続く実際の出力データとの間に、空白行を1行作ることになります。

この1行の空白行でサーバー側は、コンテンツタイプの宣言の終わりと、実際の出力データの開始を判断しています。

ここまで読んで、なんとなく気になったかもしれないので、先に説明しておきます。

仮に、コンテンツタイプの後の改行を1回だけにして、他にも情報をプラスしていくということは可能です。

このときに追加される情報としては、出力サイズ、文字コード、日付などですが、ほとんどの場合不必要な情報ですから、まずコンテンツタイプだけで十分です。

まぁ、1歩ゆずって文字コードぐらいは書いておいてもいいかもしれません。

そして、それら情報を追加した後は、必ず区切りとしての空白行を忘れないようにしましょう。

出力文字

そして実際の画面に出力(表示)されるのは、2つ目のprint命令(関数)の後の「Perl Programming」という文字列になります。

exit命令(関数)

exitとは、ここでPerl/CGIプログラムを強制終了させる命令(関数)です。

通常Perl/CGIプログラムは、上から順に実行されてゆき、一番下まで来ると自然に終了します。

したがって、exitは書いても書かなくてもどちらでもよいのですが、今回は書いてみました。

以上で今回のプログラミング解説は終わりです。

編集後記

最後に、あなたにPerl/CGIプログラミングをお勧めする理由の残り2つについて書かせていただきます。

ひとつは、「Perl/CGIプログラムサンプルが容易に入手できる」というところです。

Perl/CGIプログラムは、プログラムコードの書かれたファイルをサーバーに設置すれば、勝手にコンパイルしてくれて実行してくれることはわかっていただけたかと思います。

ということは、インターネット上に配布されているPerl/CGIプログラムは、プログラムコードが丸見えな状態になっているということです。

大切なことなのでもう一度言います。

インターネット上に配布されているPerl/CGIファイルは、プログラムコードが丸見えな状態になっているのです。

これが何を意味するかというのは、もうおわかりですね。

そうです。

自分が作ってみたいPerl/CGIファイルさえ入手してしまえば、あとはそこに書かれているコードを読み取り、そのプログラムを参考にしつつオリジナルなものを作成できるということです。

インターネット上には、たくさんの人がさまざまなPerl/CGIプログラムファイルを作成し公開しています。

つまり、Perl/CGIプログラミングに関しては…

参考にし放題!

勉強し放題!

作成し放題!

という状況なわけです。

あなたにPerl/CGIプログラミングをお勧めする最後の理由は、「できることが豊富にある」というところです。

Perl/CGIプログラムには、モジュールという考え方があります。

このモジュールというのはわかりやすく言うと、関数のかたまりみたいなもので何かの目的を達成するために集められた制御プログラムのことです。

つまり、何かの操作をする専門的なプログラムです。

このモジュールがあるおかげで、Perl/CGIプログラマーは、簡単なプログラムコードで難しい処理を指定することができるのです。

そしてこのモジュールが、Perl/CGIプログラムには豊富に用意されています。

例えば…

複数のファイルを、zip形式で圧縮してくれるモジュール。

Perl/CGIプログラムを動かしているサーバーから通信を行い、別のサーバーにアクセスし、データを入手するモジュール。

変わったところでは、音楽を鳴らすMIDIファイルを作成するモジュールなどもあります。

ちなみにこのサイトで公開している テキストファイルをMIDIファイルに変換するソフトウェア も、このMIDIモジュールを使って作っています。

どれも1からプログラミングしていては大変なものばかりです。

しかし、これらはすべてPerl/CGIプログラムのモジュールとして存在していますから、それぞれの使い方さえマスターすれば、簡単にプログラムを作成することができるのです。

これが、Perl/CGIプログラムをあなたにお勧めする理由です。

今回の学習は以上です。

ありがとうございました。

<戻る>