Perlは,RubyやPHPなどの軽量言語(Lightweight Language)の中でも最も広く利用されている言語です。Webアプリケーションの開発から,簡単な文字列処理などちょっとした用途まで,Perlを使えば様々なプログラムを比較的容易に作れます。この記事では,Perlプログラムの基本的な書き方から配列,制御構造,正規表現まで,Perlプログラミングの初歩について学びます。

 スクリプト言語は,プログラマが“ちょっと面倒だな”と感じる問題を,素早く解決するための言語です。C言語,C++,Javaといった本格的なプログラムを書くプログラミング言語に対して,スクリプト言語はこれまで「簡易的な言語」として扱われてきました。しかし,ここで紹介するPerlは言語仕様やライブラリが拡張され,複雑なプログラムや規模が大きいプログラムも記述できるようになっています。

Perlとはどんなもの?

 最初に,Perlの概要をまとめておきましょう。

・インタプリタとして動作する
・テキスト処理機能が強力
・ライブラリが充実している
・Windows,各種UNIX,Linuxなど多くのOSで動作する
・無償で利用できる
・ドキュメントが充実している

 五つ目の特徴である「無償で利用できる」というのは,Perlがオープンソースのソフトウエアだからです。Perlのソースコードとバイナリ・ファイルは,http://www.perl.org/などからダウンロードできます。

 一方,いいことばかりではありません。筆者が考えるPerlの問題点は以下のようなものです。

・ソースコードに記号が多く,可読性が悪い感じがする
・言語仕様が整理されておらず,雑然としている
・仕様を正確に理解するのがけっこう大変

 しかし,最初にちょっと我慢すればすぐに慣れて,とっつきにくさは消えます。さらに仕様をすべて正しく理解することをある程度無視しても,Perlはそれなりに使えてしまいます。以下ではPerlがどのような言語なのかをざっと解説していきます。

 なお,Perlについて深く学習したい方には,「初めてのPerl 第3版」(オライリー・ジャパン発行)をお薦めします。また,Perlで書かれたソースコードにたくさん触れて,Perlの理解を深めたいと思われた方は,「結城 浩のPerlクイズ」(ソフトバンククリエイティブ発行)が楽しく読めるでしょう。

変数の型宣言は不要

 まずはPerlの変数と配列から見ていきましょう。リスト1は変数の例です。

リスト1●変数を利用する例
リスト1●変数を利用する例

 (1)はこのプログラムがPerlで動作することを示しているものです。UNIXやLinuxを普段から使っている方はおなじみの表記法ですね。最初の行が「#!」で始まっている場合,その後ろに書かれている実行ファイル(この場合はperl.exe)に対してテキスト全体(Perlプログラム)を渡す,という指示を表します。

 (2)で変数の登場です。Perlでは変数名の頭に「$」を付けることで,それが変数であることを表します。他のプログラミング言語に慣れている方は,ちょっとなじみにくいかもしれません。

 (2)の行では変数$nameに,文字列“Nikkei”を代入しています。(3)の行ではPerlのprint関数を利用して,$nameの内容を画面に出力しています。(4)は“ Software”という文字列を表示します。(4)の最後にある「\n」は改行コードです。(3)と(4)を合わせて画面には「Nikkei Software」と表示されます(図1)。

図1●リスト1 の実行結果
図1●リスト1 の実行結果

 なおprint関数は,

print $name, "Software¥n"

のように,複数の式を並べて記述することもできます。

 Perlの変数を利用するとき,変数の型を意識する必要はありません。文字列を代入すれば文字列型に,数値を代入すれば数値型になります(Perlには整数や小数点数という区別がなく,すべて数値型として扱われます)。したがって,先ほどまで「Nikkei」という文字列を格納していた変数$nameを数値「123」で上書きできます(5)。$nameはこの瞬間に数値型になるので,(6)のように演算できます。(7)の行で出力すると,画面には「124」と表示されます。

 このような仕様のおかげで,Perlでは型を指定して宣言する必要もありません。コーディング中に新たな変数を使いたくなったら,そこで変数の名前を考えて,そのまま書けばよいのです。気ままにプログラミングしたいときには楽ができます。