[Cascavel-pm] Mais uma pergunta idiota de REGEX !!!

Luis Campos de Carvalho monsieur_champs em yahoo.com.br
Segunda Junho 28 13:50:37 CDT 2004


Solli Moreira Honorio wrote:
> Antes das perguntas idiotas... como foi o encontro... beberam muita 
> cerveja ? Desda fez a mulher não me liberou e disse mais... só estarei 
> livre depois que terminar a reforma do apartamento... ela não compreende 
> que antes de programar temos um longo período de análise :-) ... ela 
> acho que estou ludibriando-a !!

   Bom, eu lamento muito que a sua mulher ache isso... :-) Mas tenha 
paciência... com o tempo, ela vai ver que você tem realmente de fazer 
muita análise antes de implementar... :-)

   Sobre o encontro, foi mais ou menos como sempre: bebemos umas duas ou 
três 'brejas cada, acho que o Alceu descobriu que para gostar de cerveja 
é necessário saber apreciar as coisas *amargas* da vida...

   A novidade mais interessante foi conversar com o gerente do 
O'Malleys, um holandês naturalizado brasileiro (ou era o contrário?) 
chamado Marcel. Ele se interessou em conceder aos Monges uma mesa 
"cativa" todo último sábado do mês... estou para telefonar para ele e 
conversar mais sobre o assunto. :-)

   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.

> Pessoal,
>  
> Eu posso dizer que $Valor =~ /^$procurado$/ é o mesmo que $Valor == 
> $procurado ? Se sim, porque o pessoal utiliza isto ?

   Não pode dizer isso. $Valor =~ /^$procurado/ pode ser *true* em casos 
como

   #!/usr/bin/perl
   $Valor = 'Fred Flintstone';
   $procurado = 'Fred';

   if( $Valor =~ /^$procurado/ ){
     print "Regexp vale\n!";
   }
   if( $Valor == $procurado ){
     print "Igualdade numérica vale!\n";
   }
   __END__

   E não preciso me explicar muito para que o pessoal entenda que 'Fred 
Flintstone' não é numericamente igual a 'Fred'. Mas a expressão regular 
'^Fred' certamente encontra o que busca em 'Fred Flintstone'.

   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).

   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.

   Espero que isso sane completamente suas dúvidas...
   Putamplexos!
-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
   Luis Campos de Carvalho is BSc in Comp Science,
   PerlMonk [SiteDocClan], Cascavel-pm Moderator,
   Unix Sys Admin && Certified Oracle DBA
   http://br.geocities.com/monsieur_champs/
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=




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