[SP-pm] Dúvida sobre comparação de Strings ( =~ ou eq )

"Flávio R. Lopes" flavio.lopes at links.inf.br
Mon May 31 14:17:52 PDT 2010


Olá Thiago!
Sim...clareou e muito!

Obrigado mais uma vez,

Abraço,
Flávio

Em 31-05-2010 09:26, thiagoglauco em ticursos.net escreveu:
> Bingo. Eh exatamente ai que erram os novatos. as expressoes regulares 
> vao pegar qualquer sequencia de caracteres que contenham quit, se 
> quiser marcar quit, exatamente quit e apenas quit com um regex seria 
> algo mais parecido com
>
> /^quit$/.
>
> Por que? Por que a regex vai buscar qualquer string que contenha o 
> padrao solicitado. Entao estamos buscando uma coisa mais ampla que um 
> mero substr. Estamos buscando um padrao, uma mascara. Claro que voce 
> pode fazer como eu mostrei acima e cercar o string com ^ $. Porem entre:
>
> $str =~ /^quit$/ e $str eq 'quit'
>
> a segunda eh mais facil? Por que? Por que a segunda opcao foi criada 
> para verificar a igualdade de strings, nao um padrao em um string.
>
> mas as funcoes de manipulacao de string:
>
> substr
> index
> rindex
> length
> e os operadore eq e ne sao mais apropriados quando queremos algo bem 
> definido.
>
> veja:
>
> quando o padrao eh uma string bem definida chuva a regex pode nao ser 
> a melhor escolha:
>
> [root em cg10bkn ~]# perl -e'
> $str1 = qw/chuva/;
> $str2 = qw/chuvarada/;
> $str3 = qw/chuvao/;
> print "A palavra chuvarada tem o padrao chuva\n" if $str2 =~ /$str1/;
> print "A palavra chuvao tambem tem o padrao chuva\n" if $str3 =~ /$str1/;
> print "A palavra chuvisco nao se encaixa\n" if 'chuvisco' =~ /$str1/;
>> '
>
> saída:
>
> A palavra chuvarada tem o padrao chuva
> A palavra chuvao tambem tem o padrao chuva
>
>
> um colega achou má idéia usar index, length e substr. No seu caso 
> concordo. um mero eq resolve tudo.
>
> espero ter aliviado a sua dúvida. Este é um bom livro que você está 
> foi um dos meus primeiros com Perl também, mas foi um edição mais 
> antiga...
>
> Quoting "Flávio R. Lopes" <flavio.lopes em links.inf.br>:
>
>> Ok, Luis e Nelson.
>> Estão me faltando conceitos!!..É que na verdade só estou lendo o  
>> livro "Learning Perl 5th Edition".
>> Seguirei o conselho de vocês sobre estas outras fontes de informações!
>>
>> Obrigado pela ajuda (e paciência),
>>
>> Abraço,
>> Flávio
>>
>> Em 31-05-2010 07:11, Nelson Ferraz escreveu:
>>>> Você deveria ler o artigo da Wikipedia sobre Gramáticas Regulares, vai
>>>> te ajudar muito a entender o que você está fazendo.
>>>>
>>> Ou pelo menos, RTFM.
>>>
>>> Não sei dos outros aqui na lista, mas eu espero de qualquer um que
>>> esteja programando em Perl há mais de uma semana que leia ao menos:
>>>
>>>     perldoc perl
>>>     perldoc perlintro
>>>     perldoc perlstyle
>>>
>>> Há mais de 15 dias:
>>>
>>>     perldoc perlrequick
>>>     perldoc perlretut
>>>     perldoc perlre
>>>
>>> Há mais de 1 mês:
>>>
>>>     perldoc perldsc
>>>     perldoc perlreftut
>>>
>>> Você entrou na lista no dia 20 de março. Então, vamos lá! Comece a
>>> exercitar o seu perldoc-fu! :)
>>> _______________________________________________
>>> SaoPaulo-pm mailing list
>>> SaoPaulo-pm em pm.org
>>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>>>
>>>
>>
>> _______________________________________________
>> SaoPaulo-pm mailing list
>> SaoPaulo-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>
> Thiago Glauco Sanchez
> Instrutor de Perl
> www.ticursos.net
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>



More information about the SaoPaulo-pm mailing list