【发布时间】:2018-02-15 22:24:15
【问题描述】:
我有一种情况,其中有一个接收消息的分类脚本,将其与正则表达式列表进行比较,第一个匹配的设置存储桶。一些示例代码如下所示。
my $message = 'some message: I am bob';
my @buckets = (
{
regex => '^some message:(.*)',
bucket => '"remote report: $1"',
},
# more pairs
);
foreach my $e (@buckets) {
if ($message =~ /$e->{regex}/i) {
print eval "$e->{bucket}";
}
}
此代码将提供remote report: I am bob。我一直在看这个,觉得必须有更好的方法来做到这一点,然后它现在就完成了。特别是在存储桶中使用双引号 ('""')。有没有更好的处理方法?
【问题讨论】:
标签: regex string perl eval pcre