[Rio-pm] Chaves de hash

Renato Santos renato.cron em gmail.com
Sexta Novembro 30 04:44:24 PST 2012


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/#!/renato_cron>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20121130/6f40292f/attachment-0001.html>


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