うまいぼうぶろぐ

linuxとhttpdとperlのメモ

perlでRegex::Listを使って正規表現を効率良く書く

例えば qr/foobar|fooxar|foozap|fooza/ と書くと左の単語から1つずつ順番に評価されるので数が多いと性能が落ちる。それを、カッコでグループしてくれたりして最適化してくれるモジュール。

use Regexp::List;
my $l  = Regexp::List->new;
my $re = $l->list2re(qw/foobar fooxar foozap fooza/);
# $re is now qr/foo(?:[bx]ar|zap?)/