[Rio-pm] Chaves de hash

2012-11-28 Por tôpico Aureliano Guedes

Ola Monges.

Estou com um problema simples mas que não acho a solução.

Eu tenho um hash onde as chaves são valores numericos reais (a maioria negativo 
e quase nenhum inteiro).
Estou limitando esses valores por um maximo e um minimo.

foreach my $keys (keys %d) {
if ($keys = $min and $keys = $max) {
print $d{$keys};
}
}

Problema que não da certo. 
Ha algo de errado aqui??
  ___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] Chaves de hash

2012-11-28 Por tôpico Renato Santos
VERDADE! HAHA

Mas acho que estamos com um problema aqui de nomes. talvez assim fique mais
claro:

foreach my $numero (keys %d) {
if ($numero = $min ) { # atencao, numeros iguais entram aqui
print $numero tem valor $d{$numero} e eh menor que $min\n;
}elsif ($numero  $min ) {
print $numero tem valor $d{$numero} e eh maior que $max\n;
}
}

2012/11/28 Ole Peter Smith ole@gmail.com

 como que keys sera menor do min e maior do que max? so se os tres sao
 iguais nao?

 if keys =min min=keys
 if krys = max max=keys

 0le

 Send via Android
 On Nov 28, 2012 9:43 PM, Aureliano Guedes guedes_1...@hotmail.com
 wrote:

  Ola Monges.

 Estou com um problema simples mas que não acho a solução.

 Eu tenho um hash onde as chaves são valores numericos reais (a maioria
 negativo e quase nenhum inteiro).
 Estou limitando esses valores por um maximo e um minimo.

 foreach my $keys (keys %d) {
 if ($keys = $min and $keys = $max) {
 print $d{$keys};
 }
 }

 Problema que não da certo.
 Ha algo de errado aqui??

 ___
 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




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] Chaves de hash

2012-11-28 Por tôpico Bruno Buss
Sim, o seu exemplo é a perfeita demonstração do que eu disse: a única
diferença é que você não consegue fazer short-circuit com 'and', só com
''.

A menos que o sinal de = e = agora tenha algum side-effect como o '++',
eu não particularmente não consigo chegar numa linha razoável de raciocínio
para reclamar do , and e precedências no if do Aureliano.

[ ]'s

2012/11/28 Renato Santos renato.c...@gmail.com

 Acho que o que o Marcio disse isso pois o *and* computa ambos os lados da
 expressão, para então retornar um boolean (ou continuar a sequencia de
 computar mais 'ands' e 'ors')


 $x = 0;
 $x and $x++; # $x = 1

 $y = 0;
 $y  $y++; # $y = 0


 perl -e 'use v5.14.0;use v5.14.0; my $m=0; say $m  $m++; say $m'
 *0*
 0

 perl -e 'use v5.14.0;use v5.14.0; my $m=0; say $m and $m++; say $m'
 *0*
 1


 o retorno foi o mesmo, mas o comportamento não.

 2012/11/28 Bruno Buss bruno.b...@gmail.com

 @Thiago e Marcio:
 O que vocês estão falando? Pelo amor de Larry...
 O operador 'and' é *exatamente* igual ao '', tirando o nível de
 precedência... onde o 'and' é um dos que tem a precedência mais baixa.
 (perldoc perlop por favor...)
 Ou seja, você pode fazer tudo que faz com '' com 'and', menos contar
 com short-circuit em condicionais ;)




 --
 Saravá,
 Renato CRON
 http://www.renatocron.com/blog/
 @renato_cron http://twitter.com/#!/renato_cron


 ___
 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

Re: [Rio-pm] Chaves de hash

2012-11-28 Por tôpico Blabos de Blebe
TRUCO!!!

perl -E '$a=0; 0 and $a=1; say $a'
perl -E '$a=0; say 0 and $a=1; say $a'

A pegadinha fica como exercício...



2012/11/28 Bruno Buss bruno.b...@gmail.com:
 Sim, o seu exemplo é a perfeita demonstração do que eu disse: a única
 diferença é que você não consegue fazer short-circuit com 'and', só com
 ''.

 A menos que o sinal de = e = agora tenha algum side-effect como o '++', eu
 não particularmente não consigo chegar numa linha razoável de raciocínio
 para reclamar do , and e precedências no if do Aureliano.

 [ ]'s

 2012/11/28 Renato Santos renato.c...@gmail.com

 Acho que o que o Marcio disse isso pois o and computa ambos os lados da
 expressão, para então retornar um boolean (ou continuar a sequencia de
 computar mais 'ands' e 'ors')


 $x = 0;
 $x and $x++; # $x = 1

 $y = 0;
 $y  $y++; # $y = 0


 perl -e 'use v5.14.0;use v5.14.0; my $m=0; say $m  $m++; say $m'
 0
 0

 perl -e 'use v5.14.0;use v5.14.0; my $m=0; say $m and $m++; say $m'
 0
 1


 o retorno foi o mesmo, mas o comportamento não.

 2012/11/28 Bruno Buss bruno.b...@gmail.com

 @Thiago e Marcio:
 O que vocês estão falando? Pelo amor de Larry...
 O operador 'and' é *exatamente* igual ao '', tirando o nível de
 precedência... onde o 'and' é um dos que tem a precedência mais baixa.
 (perldoc perlop por favor...)
 Ou seja, você pode fazer tudo que faz com '' com 'and', menos contar
 com short-circuit em condicionais ;)




 --
 Saravá,
 Renato CRON
 http://www.renatocron.com/blog/
 @renato_cron


 ___
 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


Re: [Rio-pm] Chaves de hash

2012-11-28 Por tôpico Renato Santos
perl -MO=Deparse pra descobrir as pegadinhas

2012/11/28 Blabos de Blebe bla...@gmail.com

 TRUCO!!!

 perl -E '$a=0; 0 and $a=1; say $a'
 perl -E '$a=0; say 0 and $a=1; say $a'

 A pegadinha fica como exercício...



 2012/11/28 Bruno Buss bruno.b...@gmail.com:
  Sim, o seu exemplo é a perfeita demonstração do que eu disse: a única
  diferença é que você não consegue fazer short-circuit com 'and', só com
  ''.
 
  A menos que o sinal de = e = agora tenha algum side-effect como o
 '++', eu
  não particularmente não consigo chegar numa linha razoável de raciocínio
  para reclamar do , and e precedências no if do Aureliano.
 
  [ ]'s
 
  2012/11/28 Renato Santos renato.c...@gmail.com
 
  Acho que o que o Marcio disse isso pois o and computa ambos os lados da
  expressão, para então retornar um boolean (ou continuar a sequencia de
  computar mais 'ands' e 'ors')
 
 
  $x = 0;
  $x and $x++; # $x = 1
 
  $y = 0;
  $y  $y++; # $y = 0
 
 
  perl -e 'use v5.14.0;use v5.14.0; my $m=0; say $m  $m++; say $m'
  0
  0
 
  perl -e 'use v5.14.0;use v5.14.0; my $m=0; say $m and $m++; say $m'
  0
  1
 
 
  o retorno foi o mesmo, mas o comportamento não.
 
  2012/11/28 Bruno Buss bruno.b...@gmail.com
 
  @Thiago e Marcio:
  O que vocês estão falando? Pelo amor de Larry...
  O operador 'and' é *exatamente* igual ao '', tirando o nível de
  precedência... onde o 'and' é um dos que tem a precedência mais baixa.
  (perldoc perlop por favor...)
  Ou seja, você pode fazer tudo que faz com '' com 'and', menos contar
  com short-circuit em condicionais ;)
 
 
 
 
  --
  Saravá,
  Renato CRON
  http://www.renatocron.com/blog/
  @renato_cron
 
 
  ___
  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




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] Chaves de hash

2012-11-28 Por tôpico Bruno Buss
Ok, estava errado sobre o short circuit =P

[ ]'s

2012/11/28 Blabos de Blebe bla...@gmail.com

 TRUCO!!!

 perl -E '$a=0; 0 and $a=1; say $a'
 perl -E '$a=0; say 0 and $a=1; say $a'

 A pegadinha fica como exercício...



 2012/11/28 Bruno Buss bruno.b...@gmail.com:
  Sim, o seu exemplo é a perfeita demonstração do que eu disse: a única
  diferença é que você não consegue fazer short-circuit com 'and', só com
  ''.
 
  A menos que o sinal de = e = agora tenha algum side-effect como o
 '++', eu
  não particularmente não consigo chegar numa linha razoável de raciocínio
  para reclamar do , and e precedências no if do Aureliano.
 
  [ ]'s
 
  2012/11/28 Renato Santos renato.c...@gmail.com
 
  Acho que o que o Marcio disse isso pois o and computa ambos os lados da
  expressão, para então retornar um boolean (ou continuar a sequencia de
  computar mais 'ands' e 'ors')
 
 
  $x = 0;
  $x and $x++; # $x = 1
 
  $y = 0;
  $y  $y++; # $y = 0
 
 
  perl -e 'use v5.14.0;use v5.14.0; my $m=0; say $m  $m++; say $m'
  0
  0
 
  perl -e 'use v5.14.0;use v5.14.0; my $m=0; say $m and $m++; say $m'
  0
  1
 
 
  o retorno foi o mesmo, mas o comportamento não.
 
  2012/11/28 Bruno Buss bruno.b...@gmail.com
 
  @Thiago e Marcio:
  O que vocês estão falando? Pelo amor de Larry...
  O operador 'and' é *exatamente* igual ao '', tirando o nível de
  precedência... onde o 'and' é um dos que tem a precedência mais baixa.
  (perldoc perlop por favor...)
  Ou seja, você pode fazer tudo que faz com '' com 'and', menos contar
  com short-circuit em condicionais ;)
 
 
 
 
  --
  Saravá,
  Renato CRON
  http://www.renatocron.com/blog/
  @renato_cron
 
 
  ___
  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




-- 
Bruno C. Buss
http://www.brunobuss.net
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm