Perl入門ゼミ

テキスト処理、Linuxサーバー管理、Web開発ならPerl
  1. Perl
  2. 演算子
  3. here

qr演算子 - 正規表現のリファレンスを作成する

qr演算子」で正規表現のリファレンスを作成することができます。qr演算子を使うと、正規表現をリファレンスとして変数に保存できます。正規表現のオプションも含めて保存できます。正規表現が、コンパイルされるので、繰り返しパターンマッチを行う場合、高速に動作します。

# 正規表現のリファレンス
my $regex = qr/\d+/sm;

パターンマッチを行うときは//の中に入れることもできますし、そのまま使用することもできます。//の中にいれたほうが少し見やすと思います。

# //の中で使用
if ($str =~ /$regex/) {
  ...
}

# そのまま使用
if ($str =~ $regex) {
  ...
}

リファレンスって何?

リファレンスについては以下の記事で詳しく解説しています。

サンプル

正規表現のリファレンスを使ったサンプルです。

use strict;
use warnings;

# qr// を使うとオプションも含めて変数に保存できます。
# (gオプションは、指定できません。)
my $word = "ababab";
my $regex = qr/A/i; 
                    
my $replace = 'c';

$word =~ s/$regex/$replace/g; 
print "\$word = $word\n";

実行結果。

$word = cbcbcb
  • Perlとはテキスト処理の記述性とパフォーマンスに優れ、正規表現が言語に組み込まれているプログラミング言語です。
  • Linuxサーバーでのフィルタリングプログラム、複数行の文字列を処理、ファイル内容の検索・置換などが得意
  • Perlはgitopensslなど広く普及したUnix/Linuxミドルウェアの補助ツールとして採用実績あり。後方互換性とポータビリティの高さがひとつの理由と推測。
  • 大量のテキストを扱うWeb開発も得意。ロングテールSEOを意識したWebサイト、アドテクやソーシャルゲームでの50ms以内のJSONの生成など。