[Cascavel-pm] Duvida expressao regular?
Nilson Santos Figueiredo Junior
acid06 em gmail.com
Quinta Outubro 18 09:05:46 PDT 2007
On 10/18/07, Luis Motta Campos <luismottacampos em yahoo.co.uk> wrote:
> A segunda opcao eh "/o", que quer dizer "compile Once" - informa o Perl
> de que a expressao regular em questao nao muda ao longo do programa e
> pode ser compilada apenas uma vez. Isso ajuda a performance do programa,
> quando voce usa expressoes regulares "estaticas" - que nao variam
> dependendo de outras informacoes do seu programa - em loops muito
> longos.
Na verdade, acho que atualmente não faz muito sentido usar a opção /o.
Além de não prover ganhos de performance, ela é, na verdade, um pouco
pior:
use Benchmark qw/cmpthese/;
cmpthese(5000, {
normal => sub {
for (1000..1999) { $i++ if /[13579]$/ }
},
with_o => sub {
for (1000..1999) { $i++ if /[13579]$/o }
}
} );
Resultados:
Rate normal with_o
normal 1720/s -- -2%
with_o 1758/s 2% --
-Nilson Santos F. Jr.
Mais detalhes sobre a lista de discussão Cascavel-pm