第1章 Perlの概要

1-1. CGIとは

CGIとは、Common Gateway Interface の略で、WWWサーバの中で外部プログラムを実行するための仕組みをいいます。 インターネット文化がそうであるように、CGIもUNIXの中から生まれ発展してきました。
CGIは、ブラウザからのアクセスによってWWWサーバ内で CGIプログラムが実行され、その結果がブラウザへ返されるという仕組みになっています。 その特性としては、通常のウェブページでは、HTMLと呼ばれるあらかじめ用意された静的なページを表示するだけですが、CGIを用いることにより、たとえば、掲示板やアクセスカウンタ、アンケートなどのような動的なページを作成することができるようになります。
HTMLの場合
ブラウザ
(1) HTMLを要求
WWWサーバ
(2) HTMLを送信
CGIの場合
ブラウザ
(1) CGIへデータを送信
WWWサーバ

(2) CGIを実行
(3) 結果をHTMLで返信
CGIの特性として、もう1つ忘れてはならないことがあります。CGIはWWWサーバ上で実行されるため、訪問者のパソコンの機種やOS、ブラウザなどに依存しません。 たとえば動的なページを作成するものとして他にJAVAアプレットやJavaScript、Flashなどがありますが、どれもブラウザ側で実行されるため、その機能はどうしてもブラウザに依存され、使用環境に制限が出てくることになります。
pagetop

1-2. Perlとは

Perlとは、CGIを実現するためのプログラミング言語の1つです。
Perlは、本来UNIX上で利用できるプログラミング言語として、Larry Wall氏 によって開発され、1987年に一般公開されました。 当初は、テキスト処理やファイル処理に重点を置いたものでしたが、徐々に機能拡張され、またボランティアによって、Windows や Macintosh などのUNIX以外のプラットフォームにも移植されて、急速に普及を遂げてきました。
Perlという名称は、英字の頭文字を取ったもので、次の2つのキーワードから成り立っています。
Practical Extraction and Report Language 実用データ取得レポート作成言語
Pathologically Eclectic Rubbish Lister 病的折衷主義のがらくた出力機
一見、相反するような内容ですね。しかしながら、Perlを学んでいくうちに、この2つの意味が理解できるようになると言われています。
pagetop

1-3. Perlの特長

Perlの特長としては、次のようなことが挙げられます。
1. プログラムがテキストベースなので、作成や修正が簡単。
通常、作成したプログラムを実行するためには、コンパイル (*1) をする必要がありますが、Perlは(テキストベースの)ソースプログラムの状態から即実行することができ (*2) 、コンパイルを必要としません。
このため、テスト作業等が効率的であり、また初心者にも扱いやすいという特性があります。
通常のプログラム
ソースプログラム

コンパイル

実行プログラム

実行
Perlプログラム
ソースプログラム

実行
2. 文字列を扱う機能が優れている。
強力な正規表現を備えていて、柔軟なテキスト処理を行うことができます。
正規表現とは、文字列のパターンマッチングを表現する手法の1つで、これを利用することで、非常にバリエーションある表現が可能となります。 詳しくは第7章 正規表現をご覧ください。
3. プロバイダをはじめ、ほとんどのCGI環境がPerlを前提としていて利用しやすい。
通常プロバイダでCGIを利用する場合、大抵はPerlを前提にしています。
また、書店に並ぶCGI関連の書籍、あるいはネット上で公開されるCGIのフリーソフトなどもPerlによるものが多いようです。 このようにCGIといえばほとんどがPerl言語であり、身の回りの環境からも大変利用しやすいというメリットがあります。
4. フリーソフトのため導入がしやすい。
Perlはフリーソフトのため、誰でも無償で利用することができます。 また再配布も認められているため、独自の機能をアレンジされたものや、UNIX以外のプラットフォームへ移植されたものなど、広範囲にわたって普及を遂げています。
pagetop

1-4. Perlの種類と入手先

Perlにもいくつか種類があり、主要なものとしては次のようなものがあります。
1. Perl6
現在の最新バージョンで、2010年にリリースされました。 一世代前のPerl5との互換性がなく、今後の成り行きが注目されている状況です。 まだほとんど普及もしていないようです。
2. Perl5
最も普及しているバージョンで、今はPerlといえば、「Perl5」のことと考えていいでしょう。
先代のPerl4に比べて、オブジェクト指向 (*3) の要素を取り入れたものとなっています。
3. Active Perl
Windows向けに移植されたPerlです。ActiveState社により提供されています。
4. Strawberry Perl
Windows向けに移植されたPerlです。Active Perlに比べて若干玄人向けの感があります。
モジュールのインストールも自由にできるようになっています。
pagetop