[Cascavel-pm] Mais uma pergunta idiota de REGEX !!!
Solli Moreria Honorio
shonorio em terra.com.br
Segunda Junho 28 20:58:27 CDT 2004
>
> Gostaria de saber o que os Monges acham deste tipo de patrocínio,
mas
>é sério pessoal... a gente pode acabar usando camisas com o logo do
Perl
>em uma manga e o logo do O'Malleys na outra... e isso pode ser bom ou
>ruim para a nossa imagem. Por favor pesem bem vossas respostas.
Pelos menos poderemos ser conhecido como bons de copo :-)
> Se você quer comparar strings, use 'eq' (igualdade alfanumérica) ou
>'cmp' (comparação alfanumérica). Se você quer comparar números use '=='
>(igualdade numérica) ou '<=>' (comparação numérica).
O '==' foi um deslize porque eu estou trabalhando bastante com outra
linguagem que não faz esta distinção, mas é claro que sei a diferença
entre '==' e 'eq'
> Não pode dizer isso. $Valor =~ /^$procurado/ pode ser *true* em
casos
>como
A minha dúvida é quando eu uso o '^' e o '$' entre o valor desejado, na
minha leitura isto siginfica exatamente o valor, e ai qual seria a
vantagem de utilizar expressões regulares.
<code>
#!/usr/bin/perl
$Valor = 'Fred Flintstone';
$procurado = 'Fred';
if( $Valor =~ /^$procurado/ ) # Imprime
{
print "Regexp vale!!!\n";
}
if( $Valor =~ /^$procurado$/ ) # Não imprime
{
print "Regexp vale\n!";
}
if( $Valor eq $procurado ) # e não imprime
{
print "É igual !!!\n";
}
<\code>
Utilizando o seu exemplo, eu concluo que a minha leitura está correta
(coisa rara hein !!), mas mesmos assim não consiguo compreender porque o
cara utiliza expressão regular para isto, você mesmo disse em um email
passado sobre as melhores prática em Perl para não utilizar expressões
regulares sem necessidades.
> Expressões regulares tem efeitos nem sempre simples de se vislumbrar
>e são certamente muito dispendiosas (em termos de recursos) para se
usar
>em testes lógicos simples.
Estou perguntando isto porque tenho visto este tipo de expressão em
muitos códigos de sistemas 'famosos' em Perl, como o 'SpamAssassin' e
alguns outros no qual estou trabalhando. Isto pode significar um mau uso
da lingaguem ?
> Espero que isso sane completamente suas dúvidas...
Ainda não... mas estou ancioso para isto !!!
Mais detalhes sobre a lista de discussão Cascavel-pm