[Rio-pm] Chaves de hash

Renato Santos renato.cron em gmail.com
Sexta Novembro 30 05:39:07 PST 2012


que toda vez que você passar termofilter('arquivo', -30, -20) todo o
arquivo estaria sendo lido (o q é obvio)

que por exemplo, poderia ser

$dados = h_energy('arquivo.txt');

termofilter($dados, -30, -20);

nesse caso, o codigo ficaria assim:
http://pastebin.com/ZyWPxq9A



2012/11/30 Aureliano Guedes <guedes_1000 em hotmail.com>

>  Entendi, eu so não entendi a parte de "uma coisa: eu vi que sua funcao lá
> de intervalo está criando tudo de novo, dependendo do caso, você pode fazer
> a leitura apenas uma vez,".
>
> O que você quis dizer com isso?
>
> ------------------------------
> From: renato.cron em gmail.com
> Date: Fri, 30 Nov 2012 10:44:24 -0200
>
> To: rio-pm em pm.org
> Subject: Re: [Rio-pm] Chaves de hash
>
> faça o push (só que sem a funcao),
>
> outra forma, porque não usar uma array ? e ai você coloca assim:
>
>  my @hmfe;
>
>   while (..){ ...
>       push @hmfe, {valor => $mirna, registro => $record};
>       ...
>   }
>
>
> e ai você faria o seu loop pra encontrar o valor mudando apenas
>
> $keys por $linha->{valor}
>
> foreach my $linha (@hmfe){
>    ... if ..
> }
>
> -----
> uma coisa: eu vi que sua funcao lá de intervalo está criando tudo de novo,
> dependendo do caso, você pode fazer a leitura apenas uma vez, retornar
> o @hmfe (em referencia {  return \@hmfe }, para nao duplicar na memoria) e
> depois usar ele na funcao que recebe o intervalo e retorna os registros.
>
> 2012/11/30 Aureliano Guedes <guedes_1000 em hotmail.com>
>
>  Biólogo não, biomedico, acredite essa diferença fere nossos sentimentos.
> hahaha
>
>
> > Hashs não têm mais de uma chave igual. Ele vai mudar o valor
> > relacionado à chave e não criar outra chave com o mesmo valor.
>
> Agora sim, isso é um problemão. Estarei perdendo dados assim.
>
> Como poderia reverter isso então??
>
> Faria a chave ser valor e o valor ser chave?? Quais minhas opções??
>
> sub h_energy{
>     my $self = shift;
>     my $data = $self->h_data || die "cannot find data";
>     my $file = file("$data")->openr();
>     my %hmfe = ();
>     my $mirna;
>     my $record;
>
>     while (my $linha = <$file>) {
>         if ( $linha =~ m{target:.*} ) {
>             $record = $linha . $record if ($record);
>             $hmfe{$mirna} = $record if ($mirna);
>             $mirna = $+{mirna};
>             $record = q() if ($record);
>         }
>         elsif ($linha =~ m{mfe:\s+(\S+)\s+kcal/mol}){
>             $mirna = $1;
>             $record .= $linha;
>         }
>          else {
>             $record .= $linha;
>          }
>     }
>     return %hmfe;
> }
>
> > Date: Fri, 30 Nov 2012 10:30:17 -0200
> > From: thiagoglauco em ticursos.net
>
> > To: rio-pm em pm.org
> > Subject: Re: [Rio-pm] Chaves de hash
> >
> > Hashs não têm mais de uma chave igual. Ele vai mudar o valor
> > relacionado à chave e não criar outra chave com o mesmo valor.
> >
> > Em 2012-11-30 00:24, Aureliano Guedes escreveu:
> > > Bruno, no meu if funcionou tanto com && quanto com and. O meu erro
> > > mesmo foi que a regex pegava um espasso.
> > >
> > > Bem a minha duvida ficou em "porque seria problematico colocar reais
> > > em chaves de hash no meu caso?"
> > >
> > > Se eu fosse pesquisar um valor especifico e tivesse duas ou mais
> > > chaves com o mesmo valor real seria problema
> > > mas no meu caso umporta que o valor esteja em um determinado
> > > intervalo, podem ter 20 chaves iguais, estando no intervalo
> > > eu quero os 20 valores. 49??
> > >
> > > -------------------------
> > > 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/ [1]
> > >>> @renato_cron [2]
> > >>>
> > >>> _______________________________________________
> > >>> Rio-pm mailing list
> > >>> Rio-pm em pm.org
> > >>> http://mail.pm.org/mailman/listinfo/rio-pm [3]
> > >
> > >> _______________________________________________
> > >> Rio-pm mailing list
> > >> Rio-pm em pm.org
> > >> http://mail.pm.org/mailman/listinfo/rio-pm [3]
> > >
> > > _______________________________________________ Rio-pm mailing list
> > > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm
> > >
> > > Links:
> > > ------
> > > [1] http://www.renatocron.com/blog/
> > > [2] http://twitter.com/#%21/renato_cron
> > > [3] 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/#%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
>



-- 
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/c7ebbf90/attachment-0001.html>


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