[Cascavel-pm] Hash

Luis Campos de Carvalho monsieur_champs em yahoo.com.br
Quinta Maio 12 16:31:05 PDT 2005


--- luizc_ig <luizc_ig em ig.com.br> escreveu:
> Olá, 
> 
> Vi algums problemas resolvidos por voces em uma lista de discussão, não 
> cosegui entrar para postar um problema,

  Apenas desta vez, eu inscrevi você na lista de Cascavel.
  Responda ao email que a lista está te enviando e você vai estar automaticamente inscrito.
  Depois, para postar mensagens, escreva para cascavel-pm em pm.org.

  Se você estiver em Sampa, pode dar uma espiada no website de sampa, e talvez se interesse por
participar das nossas atividades locais: http://sao-paulo.pm.org/

> tenho uma lista muito grande e 
> coloco em um hash, mas tenho o seguinte problema, tenho que localizar o 
> chave utilizando uma expressao regular, o que não funciona no hash???certo, 
> como poderia resolves este problema em perl, pois não posso percorer uma 
> lista pois a performa nao atende. 
> 
> exemplo: 
> 
>  my %teste; 
> 
>  $teste{'Luiz .....'}=1;# Expressao Regular 
>  $teste{'Fernanda'}=2; 
>  $teste{'Ana'}=3; 
>  $teste{'Beatriz'}=4; 
>  $teste{'Carlos'}=5; 
> 
>  print $teste{'Luiz Carlos'},"\n"; 

  Você pode usar a função "grep" para fazer isso. Assim:

  my @provaveis_chaves = grep { m/Expressao,Regular/ } keys %hash_muito_longo;

  Acho que é o melhor que você vai conseguir com listas muito longas em memória.

  Mas eu acho que você tem alguma coisa errada no começo disso. Não deveria ter de manter uma
"lista muito longa" em memória, exceto por uma falha de projeto. Talvez você pudesse usar um banco
de dados relacional, ou outra forma de armazenamento/gerenciamento/recuperação de dados mais
eficiente (como um diretório LDAP, por exemplo).

  Espero que isso resolva seu problema.
  Desculpe a demora em responder, eu estive fora hoje praticamente o dia todo...
  Putamplexos, e bem-vindo à lista!

--
Luis Campos de Carvalho
Member of "São Paulo Perl Mongers",
Unix SysAdmin & OCP/DBA Oracle
http://br.geocities.com/monsieur_champs/

__________________________________________________
Converse com seus amigos em tempo real com o Yahoo! Messenger 
http://br.download.yahoo.com/messenger/ 


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