[Cascavel-pm] extremamente perdido

Breno G. de Oliveira breno em clavis.com.br
Quinta Agosto 18 18:09:51 PDT 2005


> > > > > Uma pequena correção, se me permite (...)
> > > >
> > > > Seria? Certo? (...)
> > >
> > > Não devemos esquecer que o que fica entre (...)
> >
> > '==' *NÃO* pode ser usado no lugar de 'eq' (...)
>
> O mais interessante ainda é que quem desenvolve muito em shell(bash,
> ksh, etc) está acostumado a utilizar as maneiras '-eq', '-gt', etc.
> para comparar números, o que seria o contrário do Perl. Só para
> constar ;)
>

Interessante perceber que a pergunta em questão:

"Porque todo mundo que eu converso sobre perl diz que é uma linguagem
 dificil? Realmente ela é?"

foi respondida, ainda que indiretamente. Como disse o Luis inicialmente,
em perl existe mais de uma maneira de fazer TUDO. Por isso, em minha
humilde opinião, é que o perl acaba afugentando os acostumados com as
limitações estruturais da linguagem que já conhecem (C, Java, VB, etc)
com toda a sua liberdade. Liberdade tamanha que mesmo experientes
programadores de perl como os monges dessa lista podem se confundir um
pouco com ela.

Mas, usando as palavras do próprio Larry Wall:

"The very fact that it's possible to write messy programs in Perl is
also what makes it possible to write programs that are cleaner in Perl
than they could ever be in a language that attempts to enforce
cleanliness. The potential for greater good goes right along with the
potential for greater evil."

E essa liberdade eu não troco por nada ;)

Por isso, tentando responder a pergunta mais diretamente, eu diria que
sim, perl é uma linguagem difícil. Mas também é uma linguagem muito
fácil. Depende de como você olha para ela.

Espero ter contribuido um pouco na discussão.

[]s

breno



Alexandre de Abreu wrote:
> Olá,
> 
> O mais interessante ainda é que quem desenvolve muito em shell(bash,
> ksh, etc) está acostumado a utilizar as maneiras '-eq', '-gt', etc.
> para comparar números, o que seria o contrário do Perl. Só para
> constar ;)
> 
> []s
> 
> Alexandre de Abreu
> 
> On 18/08/05, Nilson Santos Figueiredo Junior <acid06 em gmail.com> wrote:
> 
>>On 8/17/05, Luis Campos de Carvalho <monsieur_champs em yahoo.com.br> wrote:
>>
>>>  Seria? Certo? Eu vejo mais flexibilidade do que você nestas coisas...
>>>mesmo cuspindo um aviso, o perl sabe o que fazer para comparar as
>>>strings. :-) conforto para quem programava C, e nenhum problema
>>>(inicialmente, claro!!)
>>
>>Estou dizendo isso no tom mais amigável possível, mas acho que você tá
>>vendo mais flexibilidade do que deveria. ;-)
>>
>>'==' *NÃO* pode ser usado no lugar de 'eq'
>>
>>Observe a diferença entre as saídas de:
>>
>> perl -e "$var = 'teste'; print $var == 'abacaxi' ? 1 : 0"
>>
>>e
>>
>> perl -e "$var = 'teste'; print $var eq 'abacaxi' ? 1 : 0"
>>
>>O perl *não* sabe o que fazer. '==' serve para realizar uma comparação
>>numérica, ou seja, ele converte ambos os lados da expressão para
>>números antes de realizar a comparação. Dessa forma, quaisquer duas
>>strings que não contenham números em seu conteúdo retornaram
>>verdadeiras caso comparadas com '=='.
>>
>>E assim como '==' não pode ser usado no lugar de 'eq', o contrário
>>também é verdadeiro. Observe a diferença entre as saídas de:
>>
>> perl -e "$var = '123.0'; print $var eq 123 ? 1 : 0"
>>
>>e
>>
>> perl -e "$var = '123.0'; print $var == 123 ? 1 : 0"
>>
>>Na verdade, '==' e 'eq' são operadores que vez ou outra acabam gerando
>>problemas. Foi até sugerido que os operadores que operam sobre strings
>>('eq', 'ne', etc) fossem removidos e deixar os seus equivalentes
>>numéricos fazerem todo o trabalho, mas o Larry Wall rejeito a idéia
>>(sabe-se lá por que).
>>
>>-Nilson Santos F. Jr.
>>_______________________________________________
>>Cascavel-pm mailing list
>>Cascavel-pm em pm.org
>>http://mail.pm.org/mailman/listinfo/cascavel-pm
>>
> 
> 
> 


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