Webプログラミング5大基礎知識」のPart4では,いよいよ実践的なプログラミングに移ります。WebサーバーのApacheとスクリプト言語であるPerlを使って,簡単なプログラムを書いてみます。変数やハッシュ,配列の考え方などは,ほかの言語にも応用できます。

 これからWebプログラミングを勉強するという人でも,「Perl」という単語くらいは聞いたことがあると思います。Perlは,汎用的なインタプリタ*1言語ですが,どちらかと言えば「Webプログラム用に設計された言語」という印象を持つ人が多いかもしれません。これは,Perlの持つ「文字操作に強い」という特徴が,テキストで構成されたHTML文書を動的に生成するWebアプリケーションの世界と親和性が高いからに,ほかなりません。

 一方で,ある程度Webプログラミングをご存じの読者であれば,「何で今さらPerl?」と思うかもしれません。Perlで構築されたCGI(あとで説明します)と呼ばれるWebシステムは今でも多く利用されていますが,いまWebプログラミングの主流となっているのはPHP*2のような言語です。PHPの全盛期に,あえてPerlでWebプログラムを作成する意味なんかあるのでしょうか? 実はしっかりあるんです。

 Perlの言語仕様そのものは,C言語によく似ています。スクリプト言語なので,変数の型などは大変緩やかになっていますが,コードの流れを追って意味を理解しやすい言語になっています。強力な正規表現処理*3の能力も備えていて,日本語を含むマルチバイト文字の扱いが簡単です。入門者には適した言語と言えるでしょう。JavaやVisual Basicなどに慣れたプログラマがPerlに移行するのも,比較的容易です。

 Perlは,現在でもWebプログラミングの登竜門であることに変わりはありません。この機会に,ぜひ挑戦してみてください。ここではPerlによるWebプログラミングを,ほんのサワリだけご紹介します。

PerlとCGIを正しく理解しよう

 まずは用語を整理しておきましょう。最も誤解しがちなのは「Perl」と「CGI」です。Perlという場合,基本的に開発言語としてのPerlを指します。ただし,Perlはスクリプト言語であるため,Perlで記述したプログラムの実行環境(スクリプト・エンジン)まで含めてPerlと呼ぶこともあります。

 もう一つのCGIは,言語あるいは言語の実行環境ではありません。CGIはCommon Gateway Interfaceの略で,Webサーバーが内包する機能を指します。具体的には,Webサーバーと外部ソフトを連携するための出入り口(ゲートウェイ)となるインタフェースのことをいいます。

 ブラウザからボタンを押すと,Webサーバーのハードディスクの内容をバックアップする仕組みを作るとします。バックアップ・ソフトはApacheが動いているサーバー上にあるのですが,Apacheはこのソフトを動作させる機能を持っていません。その場合は,バックアップ・ソフトを起動するようにOSを通して命令する必要があります。

 つまり,Webサーバーに代わって,サーバーにある機能(プログラム)を呼び出す役目を果たします(図1)。CGIでプログラムを作る際にPerlをよく使うため,「Perl=CGI」と思われがちですが,「CGIの手法の一つとしてPerlスクリプトを使うこともできる」というほうが正しいでしょう。CGIのプログラムは,C言語やVisual Basicなどでも作成できます。

図1●CGIプログラムの動作の仕組み
図1●CGIプログラムの動作の仕組み
[画像のクリックで拡大表示]

Apacheをインストールしよう

 PerlによるCGIプログラミングを学習するためには,PerlとHTTPサーバー*4が必要です。HTTPサーバーとしては,CGIが利用できるインターネット上のホームページ・エリアをお持ちなら,そちらを使うことをお勧めします。ただし,プロバイダが無償提供しているようなホームページ・エリアでは,CGIは利用できないと考えてください。

 レンタル・サーバーを利用している場合は,CGIを利用できることが多いと思います。インターネット上にCGIを設置できるスペースがない場合は,自分のパソコン(以下,ローカルPCと呼びます)にHTTPサーバーを導入してください。Windowsで動くHTTPサーバー・ソフトはいくつか存在しますが,事実上のデファクト・スタンダードであるApacheを導入するのが最も確実です。