[Rio-pm] Chaves de hash
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
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
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
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
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
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