预编译正则表达式

我们可以抛开匹配或替换操作符,直接用qr//定义模式,然后使用这个已经编译过的正则表达式。

my $regex = qr/Buster(.*)Mini/si;

foreach (@big_long_list) {
    $count += /$regex/;

}

 

我们还可以使用某条正则表达式之前,先用qr//测试一下,看能否通过编译,而不必等到应用时才发现模式本身的问题。

可借助eval检测正则表达式编译结果:

my $name = '(' ;
my $regex = eval {}  or die "Regex failed: $@";
posted @ 2013-04-08 08:30  新闻官  阅读(616)  评论(0编辑  收藏  举报