last-modified: 2nd/June/'01;
since: 1st/June/2001;
Perl は、Practical Extraction and Report Language の頭文字をとって名付けられ、「パール」と読みます。 Larry Wall 氏によって UNIX 用に開発された文書処理のためのスクリプト言語です。参照: O'REILLY Perl.com(英)
主な仕事は、文字列処理、ファイル処理、プロセス処理の三つです。
また、 Perl の処理系(インタープリタ)自体のことも perl と呼びます。曰く、「perl は /usr/bin/perl/
にある。」云々。
Perl は現在も Larry Wall 氏によって開発が続けられており、現在のバージョンは Perl5 です。フリーソフトで配布されている処理系である perl インタープリタの高速化、色々な環境への移植も進んでいます。 perl は UNIX、Linux、Windows、Machintosh などで利用できます。
C、C++、Java、FORTRAN 等の言語ではコンパイルの必要があります。コンパイルとは、コンピュータプログラムコードを、実行環境の CPU を直接操作する言語(2進数の機械語)に翻訳することです。(中間言語である Java は少し事情が違いますが、ここでは割愛します。Java 入門を参照ください。)しかし、 Perl はソースコードを、Perlの処理系(インタープリタ)に直接渡すことで、直に動作します。
この意味で、 Shell, Perl, BASIC, Lips などはインタープリタ型言語、C, C++, FORTRAN などはコンパイラ型言語と呼びます。
一般に、インタープリタ型言語は、実行時に一行づつ機械語に翻訳しながら実行するので、実行前に翻訳しておくコンパイラ型言語に比べて、実行速度が遅くなります。しかし、 Perl は文字列処理言語ですから、演算速度よりも入出力速度が重要になる場合が殆どになりますの、深刻な問題ではないでしょう。実行に何時間も掛かるプログラムや瞬間的な反応が必要なゲームなどは Perl や Shell では記述しないということです。
手軽に書けて、コンパイルする必要の無い Perl は、多くの場面で強力な道具になります。
WWW 上での動的なコンテンツは、JavaScript、Flash、Java、CGI などが利用されます。特に CGI では、掲示板やチャットなど、高度な双方向コンテンツを、簡単に実現できます。
CGI は Common Gateway Interface の頭文字化省略語で、ユーザの端末環境に依存しないと云う大きな特徴を備えた仕組みのことです。ユーザがサーバに要求すると、サーバが自動処理をした結果を返しますので、ユーザ側での処理能力は必要ありません。
CGI の作成は、その動作を指示するプログラムを記述する必要があります。その時利用される言語は、サーバー側に処理する能力があれば、なんでも構いません。 Common Gateway Interface と呼ばれる所以です。(CGI の詳細は National Center for Supercomputing Applications (英)を参照ください。)
ここでは、 UNIX の標準的な文字列処理の言語である、 Perl を紹介します。 Perl は、「インタープリタ型言語の一つの完成形」と呼ばれることもあるほど完成度の高い、実績のある言語です。
CGI 用の Perl スクリプトは、インターネット上に多数公開されていますので、ここでは、 UNIX の文字列処理としての Perl を紹介することで、プログラミングの基礎を紹介します。
私自身は、数値計算に FORTRAN77 を用いており、 Perl を専門的に勉強したことはありません。完全に趣味の程度であることを御了承ください。
Perl の処理系(インタープリタ)はフリーソフトウェアですが、ほとんどの UNIX, Linux などには配布時に付属しており、シェルのコマンドラインから利用できるはずです。あなたがシステム管理者で最新版をインストールしたいと思えば、配布パッケージを入手して、添付されている README
を参照すれば簡単にインストール (make install
) できます。日本語化するにはその後で日本語化パッチを当てましょう。
一方、 Windows, Machintosh 用にも移植されています。 Machintosh 用には MacPerl とその日本語パッチ MacJPerl が公開されています。 Windows, DOS 用には ActivePerl とその日本語パッチ jperl が公開されています。その他の環境も含めて、 CPAN (Comprehensive Perl Archive Network) に網羅されていますので、参照するとよいでしょう。
perl
がインストールできたら、コマンドライン(UNIX ならシェル、 Windows なら DOS など)から、 perl -v
と入力して実行してください。これで perl
のバージョンが表示されれば成功です。以下に、応答メッセージ例を載せておきます。
コマンドライン>>
% perl -v This is perl, version 5.005_03 built for alpha-linux Copyright 1987-1999, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5.0 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using `man perl' or `perldoc perl'. If you have access to the Internet, point your browser at http://www.perl.com/, the Perl Home Page. % |
上の例では、 Perl のバージョンが 5.005_03 になっています。この次のバージョンから番号付けの規則が変わって、 5.006 ではなく、 5.6 になります。これらは総称して Perl5 と呼ばれています。
失敗した場合は perl
をインストールしたはずのディレクトリに移動してから再度実行してください。これでバージョンが表示されれば、インストールは成功していますがパスが通っていません。パスの通し方は OS に依存しますので、本稿では触れませんが、 MacJPerl や jperl のサイトで詳しく説明されていますので、参照してください。
perl
が問題なくインストールされていれば、試しにスクリプトを実行してみましょう。コマンドラインから次のように記述して実行してください。
perl -e "print 'Hello, world\n'"
コマンドラインから Hello, world!
と返ってくれば成功です。これ程単純でも立派な Perl スクリプトです。
本稿では Perl の使い方を紹介することが目的です。
最新情報は、「 Perl の公式ページ(O'REILLY)」と「Perl情報メモ(株式会社コンテキスト)」などのサイトを参照されるとよいでしょう。
Copyright: SUGAI, Manabu. Since: 2001