我是否真的從下面的操作中獲得任何好處(而不是將兩個if語句中的實際正則表達式替換爲$ {pcr})? (很多更行是在真實數據集,但只是用數據爲例。perl預編譯的正則表達式問題
my $defs = 0;
my $tests = 0;
my $pcr = qr/\s*[\/\\]?\s*/;
while (<DATA>)
{
$defs = ($1 ? 0 : 1) if /<(${pcr})definitions/;
$tests = ($1 ? 0 : 1) if /<(${pcr})tests/;
print "defs: $defs\ntests: $tests\n\n";
}
__DATA__
<what>
</what>
<definitions>
<one />
</definitions>
<tests>
<two />
<three />
</tests>
當你自己進行基準測試時會發生什麼? – 2009-12-04 20:01:26
我只是想知道一般真的,因爲我不太瞭解perl中的預編譯正則表達式,在我看來,既然你把預編譯正則表達式放在另一個正則表達式語句中,它無論如何都必須重新編譯。 – user105033 2009-12-04 20:03:29
是的。我想知道如何找出這樣的事情! – 2009-12-04 20:05:20