我具有如下所示的perl功能,执行时间较长。 (注意:此函数被调用10000+次。)
在搜索了一些内容之后,我发现如果我可以预编译perl regex,则执行时间可能会减少。
有人可以帮忙修改perl regex,以节省时间吗? 还是有更好的解决方案?
sub some_func {
my $var1=shift;
my $var2=shift;
if (!($var1 =~ /^UTF-?8$/)) {
print "Do something important\n";
}
if ($var2 =~ /$some_global_string/i) {
print "Do something important\n";
}
}
例如$ var2可以是
"character string with maximum 4096 character, Including html character as string"
和$ some_global_string可以是
"string as $var2 but max length of 256 character"`
答案 0 :(得分:4)
http://perldoc.perl.org/perlop.html#Regexp-Quote-Like-Operators
my $RE1 = qr/^UTF-?8$/;
my $RE2 = qr/$some_global_string/i;
....
if ($var1 !~ /$RE1/) {...};
...
if ($var2 =~ /$RE2/) {...};