[Rio-pm] Chaves de hash

Renato Santos renato.cron em gmail.com
Quinta Novembro 29 18:54:18 PST 2012


obs:

 perl -E 'sub a{my $x = shift() * 1000; $x = int($x/200)*200; $x}; say a
-0.799999999; say a -0.8'
-600
-800

como esta arredondando via truncate, o 79999999999999 geralmente deveria
estar no grupo do 800, OU NÃO! você que decide isso


2012/11/30 Renato Santos <renato.cron em gmail.com>

> pronto, na 51 eu respondo!
>
> 2012/11/30 Aureliano Guedes <guedes_1000 em hotmail.com>
>
>>  Bruno, no meu if funcionou tanto com && quanto com and. O meu erro mesmo
>> foi que a regex pegava um espasso.
>>
>  pois é, vai funcionar!
> #no more comments
>
>> Bem a minha duvida ficou em "porque seria problematico colocar reais em
>> chaves de hash no meu caso?"
>>
> tenho quase certeza que, como já foi removido de um texto, o numero real
> em questão, seja apenas um scalar, sem a flag de 'real' (se é existe essa
> flag internamente),
>
> portanto, você pode colocar qualquer coisa nas chaves de um hash sem
> problema
>
> (to em duvida se existe algum byte especial que é usado para separar as
> chaves internamente, esse valor fica em uma das variaveis magicas)
>
>
>>
>> Se eu fosse pesquisar um valor especifico e tivesse duas ou mais chaves
>> com o mesmo valor real seria problema
>>
> você tem que pesquisar exatamente o valor desejado, mas não tem problema
> pois você esta percorrendo todas as chaves
>
>> mas no meu caso *i*mporta que o valor estej*e *em um determinado
>> intervalo, podem ter 20 chaves iguais, estando no intervalo
>>
>> eu quero os 20 valores. 49??
>>
> que? 20 chaves iguais não pode!
>
>
> voltando a que eu respondi no email via celular, eu faria o codigo de
> outra forma,
> se for possivel e os intervalos forem já predetermindados:
> no lugar de
> $hmfe{$mirna} = $record if ($mirna);
> eu já montaria ( fill, populate, do the inserts ) o hash com as chaves já
> sendo o intervalo, calculado por uma funcao (que eu chameria de filtro)
>
> push(@{$hmfe{determina_intervalo($mirna)}, $record} if ($mirna);
>
> $truncate = 1000; # isso transforma -0.123456789 em -0.123 e desconsidera
> o que estiver na frente do 3. o round-up transformaria em 0.12*4*
> *
> *
> sub determina_intervalo {
> my $valor = shift;
> # isso so faz o truncate
> $valor = int ($valor * $truncate) / $truncate;
>
> # depois separa em grupos de 200:
> $valor *= 1000;
> return int($valor/200)*200; # isso retorna só '200' que ja vale, mas
> poderia ser tambem:
>
> my $tmp = int($valor/200)*200;
> retrun "$tmp:".$tmp+200 # que vai retornar '-400:-200' que
> }
>
> e assim o valor da chave do intervalo já contem todos os registros daquele
> intervalo, nem de if precisa!
>
> perl -E 'sub a{my $x = shift() * 1000; $x = int($x/200)*200; $x}; say a
> -0.12; say a -0.23; say a -0.25; say a -0.26; say a -5; say a -0.29; say a
> -0.5; say a -0.71'
> 0
> -200
> -200
> -200
> -5000
> -200
> -400
> -600
>
>
>
>> ------------------------------
>> From: leonardo.balter em gmail.com
>> Date: Fri, 30 Nov 2012 00:15:50 -0200
>>
>> To: rio-pm em pm.org
>> Subject: Re: [Rio-pm] Chaves de hash
>>
>> Quero participar dessa discussao antes do 50.
>>
>> Por que tanta peculiariade na dicotomia  de popular?
>>
>> Na buzilis da cizania ja nao era mais sobre Perl ou foi impressao minha?
>>
>>
>> Leo Balter - via mobile
>>
>> Em 30/11/2012, às 00:02, Marcio Ferreira <marciodesouzaferreira em gmail.com>
>> escreveu:
>>
>> 47
>> On Nov 29, 2012 11:35 PM, "Renato Santos" <renato.cron em gmail.com> wrote:
>>
>> #define float_epsilon 0.00001;#define float_equal(a,b) (fabs((a) - (b)) < float_epsilon)
>>
>> *BTW*
>>
>> 2012/11/29 Blabos de Blebe <blabos em gmail.com>
>>
>> float_equal
>>
>>
>>
>>
>> --
>> Saravá,
>> Renato CRON
>> http://www.renatocron.com/blog/
>> @renato_cron <http://twitter.com/#%21/renato_cron>
>>
>>
>> _______________________________________________
>> Rio-pm mailing list
>> Rio-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm
>>
>> _______________________________________________
>> Rio-pm mailing list
>> Rio-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm
>>
>>
>> _______________________________________________ Rio-pm mailing list
>> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm
>>
>> _______________________________________________
>> Rio-pm mailing list
>> Rio-pm em 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>
>
>


-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron <http://twitter.com/#!/renato_cron>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20121130/8a83ea5e/attachment-0001.html>


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