[Rio-pm] Chaves de hash

Adriano Ferreira a.r.ferreira em gmail.com
Terça Dezembro 4 08:41:31 PST 2012


2012/12/4 Aureliano Guedes <guedes_1000 at hotmail.com>:
> Alguem passa um exemplo onde esteja evidente a diferença entre & && e and!
> Um caso onde em um de certo e em outro não!

Não acredite em tudo que você ouve, mesmo na lista da Rio-pm. Dizer
que usar "and" em

 if ($keys <= $min and $keys >= $max) {


é um erro, é um exagero dos grandes, quase purismo.

Em geral, só uso o "and" quando estou fazendo uma conjunção de
"statements" (do mesmo tipo que o "or") como nos exemplos clássicos

      my $product = current_product()
           and return $product->description;

      open my $f, '<', 'file.txt'
          or die "Bad kitty: $@";

      my $var = frobnicate()
           or return;  # exit the current function if result of
frobnicate() is false

E o "&&" eu deixo só para conjunção de expressões. Por exemplo, eu usaria

 if ($keys <= $min && $keys >= $max) {

porque isto parece natural para mim. No entanto, isto é puramente uma
questão de estilo, e programadores têm estilos diferentes. Na base de
código em que trabalho, você encontra os dois tipos de expressão com
&& e "and" (ou a dicotomia similar entre || e "or"). Eu não diria para
o Graham Barr que ele usou "and" / "or" errado (ainda que eu
preferisse "&&" / "||" em alguns lugares). =)

Happy coding!


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