[SP-pm] Array? Hashes? Outros?

Renato Santos renato.cron at gmail.com
Tue Mar 12 10:21:57 PDT 2013


Cara, então,


Olhando seus e-mails, se vc guardou do jeito que o Gabriel mostrou, é mais
fácil guardar do jeito que o Eden/Marcio mostraram,


e ai não tem erro, é só usar keys
http://perldoc.perl.org/functions/keys.html para percorrer os registros.

Caso você precise de um 'join', você pode simular isso com um terceiro hash.


my $*hash1* = { "primary-key" => { campo => $valor }, "primary-key2" => {
campo => $valor , outro_campo => $valor } };
my $*hash2* = { "primary-key" => { xxx => $valor }, "primary-key2" => { xxx =>
$valor } };


my $*join* = {};

foreach my $pk (keys %$*hash1*){
    if (exists $*hash2*->{$pk}){
       $*join*->{$pk} = { hash1 => $*hash1*, hash2 => $*hash2* }
    }
}

ou até mesmo, facilitar o codigo, e remover o $*join*, por exemplo:

foreach my $pk (keys %$*hash1*){
    if (exists $*hash2*->{$pk}){
       $*hash1*->{$pk}{hash2} = *hash2;*
    }
}

E a partir dai você teria uma referencia para o *hash2* correto dentro de
cada registro do *hash1, *isso se existiu né.



2013/3/12 Marcio - Google <marciorp at gmail.com>

> Boa Renato, mais a instalação de módulos é complicado. Vou ver se esse
> está instalado.
>
> Em 11 de março de 2013 23:11, Renato Santos <renato.cron at gmail.com>escreveu:
>
> Eu acho que ele não quer manter não, só quer fazer consultas mais
>> facilmente, pois o hash dele deve estar ~confuso~ como ele mesmo disse.
>>
>> como ele mesmo já citou tabela,
>>
>> eu acho que https://metacpan.org/module/DBD::RAM pode ser util nesse
>> caso,
>> pois não haveria muita perda de velocidade, pois todos os dados ainda
>> estariam na RAM, e você podera acessa-los via SQL.
>>
>> 2013/3/11 Gabriel Vieira <gabriel.vieira at gmail.com>
>>
>>> Seria bom um exemplo de dados.
>>> Você pode fazer uso desde sistemas específicos com memcached ou outro,
>>> como pode fazer uso de HASH/ARRAY, como dito.
>>>
>>> Superficialmente (não sei que dados são esses) indico:
>>>
>>> %hash = (
>>>      1 => [camisa,g,azul,20r$],
>>>      2 => [tenis,32,branco,200r$],
>>> );
>>>
>>> Bom, isso é muito superficial mesmo, vai depender do que quer guardar.
>>>
>>> 2013/3/11 Marcio - Google <marciorp at gmail.com>:
>>> > Mestres,
>>> >
>>> >    Tenho um script que quado inicializa começa acumular algumas
>>> informações,
>>> > e quando é finalizado essas informações são descartadas. É pouco coisa.
>>> >    Preciso de algo como uma tabela temporária, os dados só existem
>>> durante a
>>> > execução do script.
>>> >    To usando por enquanto hashes, mais tá ficando confuso.
>>> >    Pensando em uma tabela em um banco de dados (o que é inviável), ela
>>> teria
>>> > 7 colunas, sendo uma delas a chave e pela qual preciso localizar os
>>> > registros, e não teria mais que 20 registros.
>>> >    Quando o script inicia, a tabela não teria nenhum valor, apenas a
>>> > "estrutura", durante a execução serão incluídos, excluídos e alterados
>>> > registros. Quando o script termina os dados são descartados.
>>> >
>>> >    Qual a maneira mais prática e elegante de fazer isso?
>>> >
>>> >
>>> > [...]'s
>>> >
>>> > Marcio
>>> >
>>> > =begin disclaimer
>>> >    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>> >  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>> >  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>> > =end disclaimer
>>> >
>>>
>>>
>>>
>>> --
>>> Gabriel Vieira
>>> =begin disclaimer
>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>> =end disclaimer
>>>
>>
>>
>>
>> --
>> Saravá,
>> Renato CRON
>>  http://www.renatocron.com/blog/
>> @renato_cron <http://twitter.com/#!/renato_cron>
>>
>> =begin disclaimer
>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>> =end disclaimer
>>
>>
>
>
> --
>
> [...]'s
>
> Marcio
> =begin disclaimer
>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>


-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron <http://twitter.com/#!/renato_cron>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20130312/954bb7d8/attachment-0001.html>


More information about the SaoPaulo-pm mailing list