[Rio-pm] Chaves de hash

Aureliano Guedes guedes_1000 em hotmail.com
Sexta Novembro 30 05:25:10 PST 2012


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 CRONhttp://www.renatocron.com/blog/

@renato_cron



_______________________________________________
Rio-pm mailing list
Rio-pm em pm.org
http://mail.pm.org/mailman/listinfo/rio-pm 		 	   		  
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20121130/f4710223/attachment-0001.html>


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