Perl/はじめに

Perl(パール)とは、1987年にラリー・ウォールが開発したプログラミング言語です。PerlはC言語をはじめ、AWKやsedのような様々なUNIXのソフトウェアの伝統を受け継ぎ、多くの優れた機能を取り入れています。
PerlのモットーはThere's More Than One Way To Do It.(やり方は何通りもある)で、略してTMTOWTDI(ティムトゥディ)などと呼ばれます。これは「正しいやり方がいくつ存在してもよい」という考え方で、Perlの柔軟性を表しています。このことから、Perlは特にテキスト処理やCGIプログラミングの分野で多く用いられています。
PerlはC言語と比べて簡潔であり、移植性が高い言語です。C言語では数百行のプログラムが必要な場合でも、Perlでは数行で書くことができることもあります。
一方で、Perlの文法は省略を多用したり、特殊変数を記号で表すことがありますので、Perlのやり方に慣れるまでには少し時間がかかるかもしれません。しかし、一行でも多くのコードを書いてPerlを身につけることをお勧めします。
テキストエディタを用いて例に挙げられる通りのファイルを作成できることを前提としています。プログラミングそのものの概念についてはプログラミング(Wikibooks)やプログラミング(Wikipedia)を参照してください。以降、断りのない場合はUnix(およびLinuxなどのUnix互換OS)上で Perl 5.30.0(2019年05月22日 リリース)以降のバージョンを利用しているものとして説明します(かつて Perl6 と呼ばれていた Raku は含みません)。
Perl公式サイトではWindowsに対応したパッケージは提供していません。 このため、サードパーティーが提供するPerlのディストリビューションを利用するか、CygwinやWindows Subsystem for Linuxを利用する方法もあります。
ActivePerlは、ActiveState社(旧ソフォス社)が提供するWindows、Linux、macOS向けのPerlのディストリビューションです。
Strawberry Perlは、Microsoft Windowsプラットフォーム用のプログラミング言語Perlのディストリビューションです。 Strawberry Perlには、完全に機能するMingw-w64 C/C++コンパイラなどのツールチェインが含まれています。 Strawberry Perlは、環境変数はインストール時に設定済みなので、インストール直後に、コマンド プロンプト・Power shellあるいは、Windows Terminalから使うことができます。
maxOS, FreeBSD, その他 UNIX 環境ではほとんどの場合、PerlはOSのユーザーランドとは別にパッケージとして提供されています。「ターミナル」を起動し、コマンドプロンプト($, %, >などの記号)に続けてperl -vと入力し、⏎([Enter]または[Return])キーを押し、以下のように表示されればperlが利用可能です。
主要なUNIXならは、Perlをサポートしていると思いますが、もしOSの公式パッケージにperlが無い場合でも、 Perl Download - www.perl.orgからバイナリパッケージをダウンロードできます。
バイナリパッケージが存在しないプラットフォームの場合はPerl Download - www.perl.orgからソースコードをダウンロードし、ビルドして実行してください。
GNU/Linux の場合、Linux Standard Base(LSB; ISO/IEC 23360:2021)では、準拠するすべてのディストリビューションにPerlをインストールして出荷することが義務付けられています。 しかし、何らかの理由でインストールされていないディストリビューションでは、apt などのパッケージマネージャーを利用してインストールする必要があります。 詳細は、利用しているディストリビューションのパッケージマネージャーの利用法を確認してください。 また、既に Perl がインストールされている環境でも、最新のバージョンを維持するためにパッケージマネージャーを利用して update するよう心がけ、脆弱性があるまま使わないようにしましょう。
Perlはインタプリター言語です。つまり、プログラムを実行するたびに、コンパイルと実行を行うPerlインタプリターが常に必要なのです。 C/C++やJavaのようにプログラムをコンパイルしてから実行するのではなく、プログラムのソースコードを(Perlインタプリターがある)別のコンピューターにコピーして実行するだけで良いのです。
ソースコードの編集には好きなテキストエディタを使うことができます。 OS標準のメモ帳(Windows)、TextEdit(macOS)、vi(UnixやUnix互換OS)などでも十分です。 Wordなどのワードプロセッサーでも編集は可能ですが、標準ではプレーンテキストとして保存されないので注意してください。
Perlで書かれたコードを実行したい場合には、テキストエディタで実行したいコードを書いてセーブ保存してから、コマンド端末から保存したファイルを perl で実行することになります。
Perlにも、Pythonの対話モードのような REPL( Read-Eval-Print Loop ) があります。
テキストエディタでhello.plというソースファイルを下記のように作成し、
Perlは、多くのプログラミング言語と同様に、Perlは構造化プログラミングというプログラミングパラダイムを採用しています。 プログラムの流れは逐次・分岐・反復の3つが基本です。 つまり、原則としてプログラムはソースコードに記述された順に実行され、if や for などの制御構造があったときだけ分岐・反復します。
Perlでは、変数は「データを格納する領域(オブジェクト)に付けられた名前」です(動的型付け)。 Perlでは変数名(例ではx)の前に$, %, @などの接頭辞(sigil; シジル)がつく表現を変数として扱います。
この対策として、キーワード my を使ってレキシカルスコープの変数(レキシカル変数)として宣言します。
Perlでは例にあるような構造のない、ただ一つの値のみを保有するデータ(スカラーと呼びます)のほか、順番に並んだ複数のデータからなる配列、キーと値のペアー複数記録するハッシュ、より複雑なデータ構造を実現するリファレンスなどのデータを扱うことができます。 変数についての詳細は変数とデーター型で解説します。 リファレンスについての詳細はリファレンスで解説します。
Perlには、豊富な数値計算のための演算子が用意されており、それらを組み合わせて式を作ることが出来ます。
原則としてPerlのプログラムは上に書かれているものから順に実行されていきますが、繰り返しや、特定の条件に応じて動作を切り替えることができます。
ある条件をみたしているか(ここでは$x が 3 より大きいかどうか)を判定し、判定の内容により動作を切り替えています。
反復は、あるブロックを繰り返す制御構造でループとも呼ばれます。
プログラミングの作成中に「プログラム内にメモを残しておきたい」「一時的にある動作を実行されないようにしたい」といった要求が生じることがあります。このような「プログラミングのコードに記載されるが動作しない箇所」のことを一般にコメントと呼びます。
PerlのPodは、Plain Old Documentationの略で、Perlスクリプトのドキュメンテーションを書くためのフォーマットです。 Podは、テキストファイルに記述され、スクリプトと一緒に配布されることが一般的です。 Podは、人間が読みやすいドキュメントを作成するために設計されていますが、コンピュータプログラムにも解析可能な単純な構文があります。
以下はPerlで1から100の間の素数をすべて表示するプログラムにPodによるドキュメントも付加した例です。
上記の例では、=head1はセクションの見出しを表します。 NAMEとSYNOPSISは、モジュールの名前と使用例を説明します。 DESCRIPTIONは、モジュールの機能の詳細な説明であり、AUTHORは、モジュールの作者の情報を提供します。