Perl は文字列操作や正規表現を得意としており、ログ解析、データ抽出、テキスト変換などの用途で広く使われています。
Perl入門

Perl は、1987 年にラリー・ウォール によって開発されたプログラミング言語です。もともとはテキスト処理やレポート作成を効率化するために設計されましたが、利便性の高さから Web 開発、システム管理、データ処理、ネットワークプログラミングなど幅広い用途で利用されています。
プログラミング言語としての Perl には、次のような特徴があります。
CPAN には豊富なライブラリが揃っており、Web 開発、ネットワーク通信、データベース操作など、さまざまな用途に対応するモジュールが利用できます。
Perl は UNIX/Linux 環境でシェルスクリプトの代替としても利用されています。また、Web 開発では CGI プログラミングの主要な言語として長年利用されてきました。
近年では Python など他のプログラミング言語の人気に押されがちですが、テキスト処理やシステム管理の分野では依然として強力なツールです。特に、既存の UNIX 系システムやレガシーシステムを扱う際には、Perl の知識が役立ちます。
このカテゴリでは、 Perl を使ったプログラミングをこれから始められる方を対象として、 Perl の基本から実践的な利用方法まで、わかりやすく解説していきます。
(Last modified: )
- 正規表現の基本
- 正規表現の利用方法
- パターンが文字列とマッチするか調べる
- パターンマッチ演算子を使ったパターンの記述
- パターンマッチ演算子の区切り文字を指定する
- 正規表現パターンの中のエスケープ処理
- 位置の指定
- メタ文字「^」:文字列の先頭とマッチする
- メタ文字「$」:文字列の末尾とマッチする
- 指定の文字から始まり指定の文字で終わるパターンを作成する
- メタ文字「\b」:単語の先頭および末尾にマッチする
- 任意の文字と繰り返し(量指定子)
- メタ文字「.」:任意の一文字にマッチする
- メタ文字「*」:直前の文字を0回以上繰り返す場合にマッチする
- メタ文字「+」:直前の文字を1回以上繰り返す場合にマッチする
- メタ文字「?」:直前の文字が0回か1回の場合にマッチする
- メタ文字「{min,max}」:直前の文字を指定した範囲の回数繰り返す場合にマッチする
- グループ化して複数の文字をメタ文字の対象にする
- 任意の文字を繰り返すパターンを作成する
- 欲張りなマッチと控え目なマッチ(最小量指定子)
- 複数の選択肢から選択
- メタ文字「|」:複数の選択肢の中のいずれかにマッチする
- 選択肢全体を繰り返すパターンを作成する
- 選択肢の中で他のメタ文字を使ったパターンを作成する
- いずれかの文字に一致(文字クラス)
- 列挙した文字の一つとマッチする(文字クラス)
- 文字クラスで連続した文字を範囲で指定する
- 文字クラスに列挙した文字以外とマッチする
- 文字クラス内のメタ文字の扱い
- 略記法を使って文字の集合を文字クラスに記述する
- マッチした部分文字列を取得
- マッチした文字列全体を取得する($&)
- マッチした文字列の前後を取得する($`, $')
- マッチした複数の文字列を取得する($1, $2, ..)
- 括弧()の位置による取得文字列の違い
- 後方参照によるパターン内での参照
- パターンへの変数展開
- パターン内での変数展開
- パターン内での配列の変数展開
- パターンマッチ演算子の区切り文字にシングルクオーテーションを使った場合
- 正規表現を使った置換
- パターンにマッチした部分を別の文字列に置換する
- オプション修飾子
- オプション修飾子の種類と指定方法
- 大文字と小文字を区別せずにマッチを行う(「/i」修飾子)
- パターンの中の空白やコメントを無視する(「/x」修飾子)
- メタ文字(.)が改行にマッチ(「/s」修飾子)
- 複数回マッチする(「/g」修飾子)
- メタ文字の「^」や「$」が行の先頭と末尾にもマッチマッチする(「/m」修飾子)
- 文字列に関する関数
- length関数:文字列の長さを取得する
- substr関数:文字列の指定した範囲の部分文字列を取得または置換する
- split関数:文字列を指定のパターンで分割する
- index関数:指定の文字列が含まれている最初の位置を検索する
- rindex関数:指定の文字列が含まれている最後の位置を検索する
- uc関数 / ucfirst関数:文字列を大文字に変換する
- lc関数 / lcfirst関数:文字列を小文字に変換する
- sprintf関数:書式指定文字列に従って値を変換した新しい文字列を取得する
- chop関数:文字列の末尾の文字を削除する
- chomp関数:文字列の末尾の改行文字を削除する
- hex関数:16進数を表す文字列を10進数に変換する
- oct関数:8進数や16進数や2進数を表す文字列を10進数に変換する
- chr関数:文字コードに対応する文字を返す
- ord関数:文字に対応する文字コードを返す
- 配列/リストに関する関数
- push関数:配列の最後に要素を追加する
- unshift関数:配列の先頭に要素を追加する
- pop関数:配列の最後の要素を取り出す
- shift関数:配列の先頭の要素を取り出す
- delete関数:指定された配列要素を削除する
- reverse関数:リスト又は配列の要素を逆順に並べたものを返す
- ハッシュに関する関数
- keys関数:ハッシュに含まれているすべてのキーをリストとして取得する
- values関数:ハッシュに含まれているすべての値をリストとして取得する
- each関数:ハッシュに含まれている要素を順に取得する
- delete関数:指定されたハッシュ要素を削除する
- exists関数:指定したキーがハッシュに存在するかどうか確認する
- 数学に関する関数
- int関数:数値の小数点以下を切り捨て整数部分を取得する
- abs関数:数値の絶対値を取得する
- sin関数:サイン(正弦)を取得する
- cos関数:コサイン(余弦)を取得する
- log関数:自然対数を取得する
- exp関数:eのべき乗を取得する
- sqrt関数:平方根を取得する
- rand関数:乱数を生成する
- 入出力に関する関数
- open関数:ファイルを開く
- close関数:ファイルを閉じる
- print関数:ファイルハンドルに対して文字列を出力する
- プログラム制御に関する関数
- exit関数:Perlスクリプトを終了する
- die関数:エラーメッセージを出力しPerlスクリプトを終了する
- その他の関数
- defined:未定義値かどうかを判別する
- undef関数:変数や配列を未定義値に設定する
( Written by Tatsuo Ikura )

著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。