Buho No.221目次

Perl講座 第5回

こんの


 新入生の皆さん、はじめまして。 3年生の こんの です。:-)

 去年の11月から 「Perl」というプログラミング言語を紹介する連載記事を書いていたのですが、 いきなり途中から読み始めても 「そもそもPerlってなに?」ってことになりかねないので、 今回はもう1回Perlを紹介する記事を書くことにします。 ちょっと新しいことも出てくるかもしれませんが。

Perlとは

 「Perl」は「Practical Extraction and Report Language (実用データ取得レポート作成言語)」の略で、 作者はLarry Wall。 1987年12月18日に初めて公開されて以来、 様々な人によって改良が重ねられて現在に至ります。

 このプログラミング言語Perlが広く知られるようになったきっかけは、 なんといってもCGI(Common Gateway Interface)の存在でしょう。 CGIはWeb上の掲示板などを実現する際にしばしば用いられますが、 CGIは何らかのプログラミング言語によって記述することになります。 したがって、C言語などの多くの選択肢もあるのですが、 テキスト処理能力の強さのわりには楽にプログラミングできるといった理由により、 しばしばPerlが使われているようです。 巷に並んでいるCGIの本のほとんどはPerlを使っているものでしょう。 僕もPerlを知ったきっかけはCGIを勉強していた時です。

 ところで、プログラミング言語にも人間と同様に得意とするところ、 不得意とするところがあります。 Perlが得意とする分野にはさっきもあげたテキスト処理があります。 例えば、

(01:23:45)[ハンドル] 会話文
といった形のログファイルが与えられたとして、 これをもとに「誰が一番多く話したか」 といったランキングに編集するのはPerlに非常に向いていると思います。

 ホームページに見られる訪問者数を数えるアクセスカウンタは 「訪問者数をファイルに保存しておき、 新たな訪問者が来た時にその数に1を加えて表示し、 再びその数字をファイルに保存しなおす」という作業で、 ほとんどがテキスト処理に終わっています。

 こういった処理をプログラムにする時に、 Perlは様々な書き方を提供しています。 作者のLarry Wallも 「TMTOWTDI(There's More Than One Way To Do It.1)」という言葉をしばしば口にしています。 また、極端な使い方の例としてPerl Poemというものがあります。 本当にPerlで詩を書くことができるのです。 Perlは自然言語を念頭におきつつ開発されてきました。 TMTOWTDIと言えるような言語になったのもこのためでしょう。 そういった理由により、なんとなくこんなものかな、 とプログラムを書いていってもすんなり動いてしまうことが結構あります。 やろうとしていることと実際にプログラムの字面が近くなる言語なのです。

 他にPerlにできることといったらどのようなものがあるでしょうか。 例えばPerlは外部と通信することができます。 データベースを容易に扱うことができます。 グラフィックも扱うことができます。 メールリーダになったりWebサーバになることもできます。 挙げ句の果てにはWindowsでGUI(Graphical User Interface)なアプリケーションを開 発したり、 Excelのデータを操作することだって可能です。

 では、Perlはなんでもできる万能言語なのでしょうか。 そのようなことはありません。 高速な数値計算や堅牢なシステムを記述するのにはまず向いていないでしょうし、 他にも不得意なところはたくさんあるでしょう。 でも、PerlはCやVisual Basicなどに比べれば幾分知名度の劣る言語です。 講義でPascalやFORTRANを取り上げても、Perlはまず出てこないでしょう。 だから、TSGに入って個人・分科会・講義等の様々な機会で様々な言語に触れる (触れている)人でPerlを僕よりも知らない人がいれば、 ここでPerlの特徴(得意な分野・不得意な分野)を知ってもらおうと思ってこの連載を 始めました。 もしも何らかの問題を解決しなければならない時にPerlを選択肢の1つに加えてもら えるようになってくれれば、Perlの一ファンとしては嬉しい限りです。:->

この連載でやること(やっていること)

 この連載では、ECCにおかれているページのアクセスログをもとにランキングを作る ことを目指します。 ちょっとプログラミングに触れたことのある人を対象とします。 今回はプログラムが一切出てこなかったのでPerlがどんな言語なんだか想像がつかな い方もいるかと思いますが、 次回以降を見ればだんだん雰囲気がつかめるのでないかと思います。

 ……ほんとにそうなるといいんですがね。(ぉ


1 それには何通りものやり方がある。

HTML化 村木亮太、東京大学教養学部前期課程, TSG(理論科学グループ)