Re: [Rio-pm] Número no final do package

2014-05-04 Por tôpico Adriano Ferreira
2014-05-04 12:12 GMT-03:00 breno :

> Só de curiosidade: http://returnvalues.useperl.at (especificamente,
> http://returnvalues.useperl.at/values.html)
>
> Eu costumo botar "1" em trabalhos profissionais, e "42" em projetos
> open-source. Em alguns módulos do SDL a gente botou "all your base are
> belong to us", e o Dancer exporta a DSL "true" e recomenda seu uso nas
> apps feitas com ele.
>
> Qual o seu valor de retorno favorito? :D


"0 but true" =)


>


>
> []s
>
> -b
>
> 2014-05-03 18:30 GMT-03:00 Bruno Buss :
> > Os dois 1os resultados do Google...
> >
> >
> http://stackoverflow.com/questions/5293246/why-the-1-at-the-end-of-each-perl-package
> >
> http://stackoverflow.com/questions/3606528/why-do-you-have-to-put-a-1-at-the-end-of-a-perl-5-module
> >
> > 2014-05-03 18:03 GMT-03:00 Aureliano Guedes :
> >>
> >> Ola monges,
> >>
> >> tenho uma dúvida meio idiota:
> >> "O que é aquele número no final do módulo??"
> >>
> >> exemplo:
> >>
> >> package Meu::Modulo;
> >>
> >> ...
> >>
> >> 1;
> >>
> >> No módulo do Garu mesmo:
> >>
> >> package Acme::BOPE;
> >>
> >> .
> >>
> >> 42;
> >>
> >> Eu sempre coloquei de forma automática o '1;', mas não faço ideia do que
> >> é, alguns módulos tem números diferentes.
> >> Mas o que é esse numero? Pra que serve? Como seu qual número devo
> colocar?
> >>
> >> Abraços,
> >>
> >> ___
> >> Rio-pm mailing list
> >> Rio-pm@pm.org
> >> http://mail.pm.org/mailman/listinfo/rio-pm
> >
> >
> >
> >
> > --
> > Bruno C. Buss
> > http://www.brunobuss.net
> >
> > ___
> > Rio-pm mailing list
> > Rio-pm@pm.org
> > http://mail.pm.org/mailman/listinfo/rio-pm
> ___
> Rio-pm mailing list
> Rio-pm@pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] Chaves de hash

2012-12-04 Por tôpico Adriano Ferreira
2012/12/4 Aureliano Guedes :
> mas quando trabalhar bit-a-bit acho que o && é mais apropiado

Para trabalhar bit-a-bit, os operadores bit-a-bit como o &
provavelmente seriam mais adequados.

Bitwise And
http://perldoc.perl.org/perlop.html#Bitwise-And

Bitwise Or and Exclusive Or
http://perldoc.perl.org/perlop.html#Bitwise-Or-and-Exclusive-Or
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm


Re: [Rio-pm] Chaves de hash

2012-12-04 Por tôpico Adriano Ferreira
2012/12/4 Blabos de Blebe :
> Até onde eu sei, não existe operador de short circuit. O short circuit
> é uma propriedade, uma otimização na avaliação de expressões lógicas.

Sim, existem operadores de "short circuit" que são aqueles que podem
ou não completar a avaliação ("evaluation") do segundo argumento
baseado no primeiro. Este é o caso dos operadores lógicos

 and or xor err
 && || ^ //

Assim em

$a = 0; ++$a || ++$a; $a  #  $a termina como 1

o segundo "++$a" nunca vai ser executado, mas em

$a = -1; ++$a || ++$a; $a

o primeiro "++$a" deixa 0 em $a e o segundo "++$a" deixa 1.

Você não pode representar estes operadores como funções

 f( operando1, operando2 )

onde todos os operandos são calculados antes da invocação de "f" - que
é o mesmo de caso de se representar os comandos condicionais "if" e
"unless". Aposto que vocês lembraram das aulas de linguagem
funcionais, "applicative vs normal order evaluation", etc.
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm


Re: [Rio-pm] Chaves de hash

2012-12-04 Por tôpico Adriano Ferreira
2012/12/4 Aureliano Guedes :
> 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!
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm


Re: [Rio-pm] Chaves de hash

2012-12-04 Por tôpico Adriano Ferreira
2012/11/30 Aureliano Guedes :
> Quanto ao and e o &&, o && consome menos memória que o and, por ser short
> circuits??

Não. A única diferença é a precedência. Ambos fazem "short circuit".

pirl @> sub { $x and $y }
sub {
package Shell::Perl::sandbox;
use warnings;
use strict 'refs';
$y if $x;
}
pirl @> sub { $x && $y }
sub {
package Shell::Perl::sandbox;
use warnings;
use strict 'refs';
$y if $x;
}
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm