はじめてのPerl/CGI
このサイトでは、あなたがPerl/CGIプログラムを扱っていく上で、必要になってくるであろう知識や情報を提供していきます。
あなたがどうしてPerl/CGIプログラムを必要としているかはわかりません。
Perl/CGIプログラマーになりたいのか?
転職やスキルアップに役立てたいのか?
それとも趣味でプログラミングを楽しみたいのか?
事情は人それぞれですから、10人いれば10個の答えがあるでしょう。
どんな事情であれ、あなたはPerl/CGIプログラミングについて知りたいことがあったから検索しこのサイトにたどり着きました。
このサイトでは、少しでもあなたのお役に立てるよう、Perl/CGIプログラムの情報をたくさん掲載していきますのでご期待ください。
それではまずはじめに、CGIとPerlについて書いていきます。
CGIの誕生
CGIとは、ウェブサーバー(Webサーバー)が、ホームページの閲覧などに使用するインターネットエクスプローラなどのウェブブラウザからの要求に応じて、プログラムを起動するための仕組みの総称です。
ウェブサーバーとは、インターネット上にたくさん存在し、ホームページなどのデータを持っていて、24時間365日常に電源が入っているようなコンピューターのことです。
ウェブサーバーは、ホームページのデータを持っています。
インターネットにつながっているあなたのパソコンが、「そのウェブサーバーが持っているホームページのデータを見たい」というような命令を出せば、ウェブサーバーは、ホームページのデータをあなたのパソコンに送ります。
その結果、このウェブページをあなたが今見ているように、簡単にアクセスして見ることができるのです。
インターネットがスタートした頃は、ウェブサーバーの仕事は、前述したようにホームページのデータを持っていて、ウェブブラウザからアクセスがあれば、指定されたページを排出するだけでした。
ちょうど、ラジオ放送のようなものです。
あなたは、ラジオのチャンネルを回せば聞きたいラジオ局を選ぶことができますが、放送されているラジオ番組に対しては、聞くことしかできませんよね。
もちろんラジオ以外の手段(メールや電話など)を使用すれば、番組に参加することはできますが、ラジオ本体だけ操作しても、ラジオ番組には参加できませんよね。
一昔前のインターネットは、ちょうどこのラジオ番組を放送する側と、ラジオ番組を聴く側(リスナー)の関係と同じです。
インターネットサーバー(ウェブサーバー)が持っているホームページのデータに対して、アクセスしてきたウェブブラウザは、サーバーから送られてきたデータを見ることしかできません。
つまり、Aというホームページがあったとしたら、誰がどこからいつアクセスしても、同じページが表示されるというわけです。
一見するとこれでよさそうな感じがしますが、たくさんの人がインターネットを使用するようになってくると、これでは不便なことも起こるようになってきました。
わかりやすくいうと、ホームページを閲覧するだけのシステムにあきてきたのです(笑)。
ホームページを閲覧するだけではなく、自分もそのページに参加したくなったんですね。
そんな要求を実現させるためには、今までの仕組みではどうにもならないので、新しい仕組みを構築する必要がありました。
それまでは、ウェブサーバーからウェブブラウザに向けて、一方通行に情報を発信していればすみました。
そうではなく、ウェブブラウザからもウェブサーバーへ情報を送るという双方向のやり取りが必要になってきたのです。
そうなると、インターネット上で動くような、共通の仕様を持ったプログラムが必要になってくるわけです。
そこで誕生した技術が、CGI「Common Gateway Interface」「共通の通り道の仕様」というわけです。
やっとCGIが出てきましたね(笑)。
CGIを使うことによって、プログラムの処理結果に基づいて、動的に文書を生成し、送出することができるようになりました。
つまりウェブサーバーからウェブブラウザへ、ウェブブラウザからウェブサーバーへ情報を送れるようになったということです。
例えば、ホームページのアクセス数をカウントするアクセスカウンターや、意見や情報を交換する掲示板などがわかりやすいところですね。
他にも、特定の人しか閲覧できないような、パスワード制限のかかったページや、入力した情報を元にメールを送信するフォームメールなど挙げだしたらたくさんあります。
今便利にインターネットが使用できるのも、CGIという規格があるからですね。
CGIとは
CGIとは、「Common Gateway Interface」の略です。
「Common Gateway Interface」ではわかりにくいので、日本語に直訳してみましょう。
「Common Gateway Interface」の日本語訳は「共通の通り道の仕様」というのが一般的に使用されています。
もっとわかりにくくなりました(苦笑)。
こんなおかたい説明では、CGI初心者の方が逃げ出してしまうので、このサイトでは、もっとわかりやすくいくことにしましょう。
ぶっちゃけCGIが何の略であるかなんて、重要なことではないです。
大切なことは、CGIとはインターネット上のどの位置に存在していて、どんな役割をしているのか?
CGIとは、どんな機能を持っていて、CGIを使用すると、あなたはどんなメリットを得られるのか?
CGIのポイントはここですよ。
このあたりがわかってくると、CGIが楽しくなってくるはずです。
このサイトは、あなたがCGIを設置して使いこなせるようになるだけではなく、ある程度のプログラミング(CGI作成)ができるようになるまでのサポートをするためのサイトです。
CGIを自分で作成することは、難しいことではありません。
プログラムのルールとパターンを覚えてしまえば誰でもできます。
さらに、CGIを作成するための特別なソフトウェアなども一切購入する必要はありません。
もちろん、CGIの作成を支援してくれるような便利なソフトウェアはたくさんあります。
でもそれらソフトウェアは、フリーソフト(無料で使用できるソフトウェア)がたくさんあるので、それらを使用すれば問題ないです。
ようは、CGIのルールと、プログラミング技術(CGI作成技術)さえ身につけてしまえばすべて無料で作成できるということです。
あ、もちろん、CGIを設置するためのインターネットサーバーをレンタルするなどのランニングコストはかかりますが、そんなに高くはないです。
自作CGIプログラムをホームページに設置し、コンテンツの一部として公開しているウェブサイトはたくさんありますよね。
イメージしやすいところでは占いサイトなどです。
あれは訪問者が入力したデータを元に、たくさんある結果の中から該当するものをピックアップし表示するだけですからプログラムとしては簡単です。
まぁそのぶん、どんな占いにするのか?というところが難しいんですが…
そう考えると、アイデアしだいでかなり面白いものができそうです。
こうなるとCGIプログラムは、立派なサイトコンテンツになるということがわかっていただけるかと思います。
CGIプログラムとしてのサイトコンテンツというのは、非常に質が高く安定したサイトのアクセス数を実現します。
例えば、あなたがとてもよい記事を書いたとします。
しかしそれは一時的にはアクセスを集めますが、インターネットの世界ではすぐに他の誰かにまねされてしまいます。
ぶっちゃけ、一瞬でコピーできます(苦笑)。
でもですね。
コンテンツ自体をCGIプログラムで提供してしまえば、まねされる可能性は低くなるわけです。
まねするためには同じようなCGIプログラムを用意しなくてはいけませんからね。
もしあなたが魅力的なサイトコンテンツを作成できたとしたら、それだけであなたのサイトには人が集まってくるわけです。
とっても魅力的なことだとは思いませんか?
このサイトでは、CGIのことをよく知らない方でも、CGIの作成がある程度できるようになるように、あなたをサポートしていきます。
CGIの特徴
CGIの特徴は、CGIはインターネットサーバー(ウェブサーバー)上で実行されるため、訪問者のパソコンの機種やオペレーティングシステム(OS)、ブラウザなどに依存しません。
オペレーティングシステムとは、パソコンの基本的な部分(文字を表示させたり音を出したりなど)をサポートしているプログラムのことです。
WindowsであればWindowsXPとか、MacintoshであればMacOSと言えばわかりやすいでしょうか?
ブラウザとは、主にインターネットを閲覧するプログラムのことです。
インターネットエクスプローラと言えばわかりやすいでしょうか?
CGIというのは、これらのプログラムに関係なく利用できるということなんです。
どういうことかというと、たとえば、CGIのように動的なページを作成するものとして他には、JAVAアプレットやJavaScript、Flashなどがあります。
これらのプログラムはどれも、アクセスしてきたユーザーのパソコンのブラウザ側で実行されるため、その機能はどうしてもブラウザに依存してしまいます。
その結果、使用環境に制限が出てくることになります。
しかし、CGIであれば、インターネットサーバー(ウェブサーバー)側で実行されるプログラムなので、ユーザー側のパソコン環境に依存することはないのです。
いやいや、CGIだってウェブブラウザに表示されるじゃないか!?
と思ったかもしれませんが、あれは実行結果が表示されているだけです。
例えば、メールフォームCGIで考えてみましょう。
お問い合わせや注文受付など、あなたも一度は使ったことがあるかと思います。
まず、訪問者が必要事項を入力し送信ボタンを押すと、入力内容がブラウザからサーバー上のCGIに送られます。
CGIプログラムは受け取ったデータを整理し、電子メールを送信したり、データベースに書き込むなどして記録を残します。
これらの作業は、CGIプログラムがサーバー上で行います。
そしてすべての作業が完了すると、その結果をウェブブラウザに表示(出力)して終了します。
このような流れを見てわかるように、CGIにとって訪問者のパソコン環境はほとんど関係ないのです。
<戻る>
Perlとは
CGIは、基本的にはどのような開発言語(プログラムの種類)でも使用できるように設計されていますが、実際にはPerlというプログラミング言語などがよく使われる傾向にあります。
Perlとは、CGIを実現するためのプログラミング言語の1つです。
Perlは、本来UNIXというオペレーティングシステムの上で、利用できるプログラミング言語として開発されました。
オペレーティングシステムと聴いても、ピンとはきませんが、わかりやすくいうと、ウィンドウズのような役割を持ったプログラムのことです。
見た目はずいぶん違いますけどね(笑)。
Perlは、Larry Wall氏によって開発され、1987年に一般公開されました。
当初は、テキスト処理やファイル処理に重点を置いたものでした。
その後、Perlはその柔軟さから、徐々にテキスト処理以外にも機能拡張が行われました。
そして今では、Windows や Macintosh などのUNIX以外のプラットフォームにも移植され普及しました。
Perlという名称はおもしろくて、次の2つの意味があると言われています。
「Practical Extraction and Report Language」実用データ取得レポート作成言語と表現されるほど、テキスト(文字)処理に優れたプログラム言語と言われていると思えば…。
「Pathologically Eclectic Rubbish Lister」病的折衷主義のがらくた出力機と言われてもいます。
この2つの意味については、あなたがPerlプログラミングを学んでいけばわかってきます。
Perlの特徴と利点
Perlの特長としては、次のようなことが挙げられます。
プログラムがテキストベースなので、作成や修正が簡単に行える。
通常、作成したプログラムを実行するためには、コンパイルという作業を行う必要があります。
コンパイルとは、テキストで書かれたプログラムコードではコンピューター側が理解できないので、コンピューターが理解できる機械語に翻訳処理をする過程のことです。
しかし、Perlはテキストベースのソースプログラムの状態から、即実行することができるので、コンパイルを必要としないのです。
正確に言うと、裏でこっそりコンパイルしているんですが、Perlプログラマーからはそれを感じさせないような仕様になっているのです。
このため、テスト作業等が効率的に行え、それが初心者にもPerlプログラミングを扱いやすくしています。
例えば、ウィンドウズ付属のメモ帳にPerlプログラムコードを記述し、インターネットサーバーに転送(アップロード)するだけで、CGIプログラムとして実行してくれるのです。
Perlプログラミングの特徴として、さらに忘れてはいけないことは、文字列を扱う機能が優れているというところです。
Perlプログラムでは、強力な正規表現を備えていて、柔軟なテキスト処理を行うことができます。
正規表現とは、文字列のパターンマッチングを表現する手法の1つです。
正規表現を利用することで、文字列の置換や抜粋など、非常に多様な表現が可能となります。
詳しくは、正規表現を学んでいけばわかってきます。
次に、Perlプログラムの利点について書いていきます。
Perlプログラムの利点としては、ほとんどのCGI環境がPerlを前提としていて利用しやすいというところです。
通常インターネットサーバー(ウェブサーバー)でCGIを利用する場合は、ほとんどがPerlを前提にしています。
また、書店に並ぶCGI関連の書籍、あるいはネット上で公開されるCGIのフリーソフトなど、ほとんどがPerlです。
このようにCGIといえば、ほとんどがPerl言語を指すというぐらいにまで普及しています。
さらにPerlは、フリーソフトのため導入がしやすいという点も大切なポイントです。
インターネットサーバー上でCGIとしてPerlを動かす場合は、Perlパッケージというプログラムを、インターネットサーバーにインストールする必要があります。
通常、Perlパッケージのような便利なシステムというのは有料だと思われがちですが、このPerlパッケージは無料で使用することができるのです。
このフリーで使えるという手軽さのおかげで、世界中のインターネットサーバーに普及しました。
またPerlは、再配布も認められています。
なのでPerlパッケージは、独自の機能を付加したものや、UNIX以外のプラットフォームへ移植されたものなど、インターネットサーバーの枠を超え広範囲にわたって普及しているのです。
このような便利なシステムを利用しないわけにはいきませんよね。
このサイトでは、Perlプログラミングをじっくり解説していきますのでご期待ください。
<戻る>