Perl入門
> 第1章 Perlの概要
第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、ブラウザなどに依存しません。たとえば
CGI
のように動的なページを作成するものとして他にJAVAアプレットやJavaScript、Flashなどがありますが、どれもブラウザ側で実行されるため、その機能はどうしてもブラウザに依存されてしまいますので、使用環境に制限が出てくることになります。
1-2. Perlとは
Perl
とは、CGIを実現するためのプログラミング言語の1つです。
Perl
は、本来UNIX上で利用できるプログラミング言語として、Larry Wall氏よって開発され、1987年に一般公開されました。
当初は、テキスト処理やファイル処理に重点を置いたものでしたが、徐々に機能拡張され、またボランティアによって、Windows や Macintosh などのUNIX以外のプラットフォームにも移植されて、急速に普及を遂げてきました。
Perl
という名称は、英字の頭文字を取ったもので、次の2つのキーワードから成り立っています。
P
ractical
E
xtraction and
R
eport
L
anguage
実用データ取得レポート作成言語
P
athologically
E
clectic
R
ubbish
L
ister
病的折衷主義のがらくた出力機
一見、相反するような内容ですね。しかしながら、Perlを学んでいくうちに、この2つの意味が理解できるようになると言われています。
1-3. Perlの特長
Perlの特長としては、次のようなことが挙げられます。
プログラムがテキストベースなので、作成や修正が簡単。
通常、作成したプログラムを実行するためには、
コンパイル
(
*1
) をする必要がありますが、Perlは(テキストベースの)ソースプログラムの状態から即実行することができ (
*2
) 、コンパイルを必要としません。このため、テスト作業等が効率的であり、また初心者にも扱いやすいという特性があります。
通常のプログラムの場合
→
→
→
ソース
プログラム
コンパイル
実行
プログラム
実行
Perl言語の場合
→
ソース
プログラム
実行
文字列を扱う機能が優れている。
強力な
正規表現
を備えていて、柔軟なテキスト処理を行うことができます。正規表現とは、文字列のパターンマッチングを表現する手法の1つで、これを利用することで、非常にバリエーションある表現が可能となります。詳しくは第7章をご覧ください。
プロバイダをはじめ、ほとんどのCGI環境がPerlを前提としていて利用しやすい。
通常プロバイダでCGIを利用する場合、大抵はPerlを前提にしています。また、書店に並ぶCGI関連の書籍、あるいはネット上で公開されるCGIのフリーソフトなども大抵はPerlです。このように
CGIといえばほとんどがPerl言語
であり、身の回りの環境からも大変利用しやすいというメリットがあります。
フリーソフトのため導入がしやすい。
Perlは
フリーソフト
のため、誰でも無償で利用することができます。また再配布も認められているため、独自の機能をアレンジされたものや、UNIX以外のプラットフォームへ移植されたものなど、広範囲にわたって普及を遂げています。
1-4. Perlの種類と入手先
Perlにもいくつか種類があり、一般的に普及しているものとしては次のようなものが存在します。
Perl4
これは
Perlバージョン4
のことです。現行バージョンが
5
であることから、一世代前のPerlといえます。少数ながら、Perl4の環境を持つプロバイダも存在します。
Perl5
これは
Perlバージョン5
のことで、現行バージョンとなります。Perl5は、Perl4との互換性を保ちながら、ソースコードを一から書き換えたと言われ、オブジェクト指向 (
*3
) の要素を取り入れたものとなっています。現在 Perl5は、
安定版2種
(Stable, Latest) と
開発版
(Devel) に分けて開発が行われています。(2006/04現在)
http://www.perl.com/
JPerl
Perlを日本語対応させるためのパッチ(追加・補助ソフト)です。外国生まれのPerlは、日本語1文字を2バイト(2文字)として扱うため、Perlの関数や正規表現で期待する効果が得られませんでしたが、このJPerlのパッチを当てることによって、日本語も1文字として扱うことが可能となり、日本語処理を有効に行うことができます。
http://homepage2.nifty.com/kipp/perl/jperl/
ActivePerl
ActiveState社により提供されているWindows環境で動作するPerlです。
http://www.activestate.com/
MacPerl
Macintosh環境で動作するPerlです。
http://www.macperl.com/
【注釈】
*1
: コンピュータが理解できる機械語に翻訳処理をすること。
*2
: プログラムの実行時に、逐次命令を解釈しながら実行させるタイプの言語で、このようなプログラムを、
インタープリタ型言語
といいます。
*3
: プログラミング手法の1つで、データをそれぞれの性質に応じた動作を含むオブジェクト、つまり目的対象として定義し、プログラム設計と開発を行う。
戻る