[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