[Rio-pm] Performance de regex

Marcos Machado listas em istf.com.br
Quarta Março 17 18:02:03 PDT 2010


Vamos por partes:

Alexei, não, o objetivo é pegar começando com STR1 ou contendo STR2. Do
jeito que fez, acho que vai ser preciso sempre começar com STR1 ou STR2.

Solli, sim, o resultado é o mesmo. Se a linha não começar com STR1 e não
contiver STR2 ele imprime. Juntar duas negativas para dar um resultado
positivo é pegajoso. Realmente ficou horrível.

Fernando, você está certo. A STR2 até pode começar a linha, mas não é
obrigatório.

Neilson, segundo o Eden, Seu Morgan disse que tá certo (e funcionou). :)

Eden, usei a condição na forma negada pois, como sempre, a coisa foi sendo
adaptada de outros testes, feitos por outras pessoas, e na hora eu nem me
toquei em inverter e usar um unless.

Como foi um job pontual, mesmo em 7 minutos já tava valendo. Só fiquei
curioso se podia melhorar, já que logo apareceram os bacalhoeiros do
awk+grep+raio+q+oparta dizendo que eram mais rápidos!

:P

Obrigado!

[]s, MM


Em 17 de março de 2010 21:12, Eden Cardim <edencardim em gmail.com> escreveu:

> 2010/3/17 Eden Cardim <edencardim em gmail.com>:
> > Não está errado, !/^string1/ && !/string2/ é equivalente a /^string1/
> > || /string2/, pelas leis de De Morgan, se não me engano, o Perl
> > otimiza isso (a versão sem negação é mais rápida). Falta saber porque
> > a preferência por expressar a condição na forma negada.
>
> Hm, parece que não otimiza, eu me lembro que tinha visto o Perl mecher
> em operadores short-cut rodando com -MO=Deparse, mas ele faz outra
> otimização, não essa.
>
> --
>   Eden Cardim       Need help with your Catalyst or DBIx::Class project?
>  Code Monkey                    http://www.shadowcat.co.uk/catalyst/
>  Shadowcat Systems Ltd.  Want a managed development or deployment platform?
> http://edenc.vox.com/            http://www.shadowcat.co.uk/servers/
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20100317/85181bbc/attachment.html>


Mais detalhes sobre a lista de discussão Rio-pm