[SP-pm] hash de hash
Daniel de Oliveira Mantovani
daniel.oliveira.mantovani at gmail.com
Thu Jun 9 20:56:54 PDT 2011
Desculpa meu meio grosseiro, para que tanto alvoroço por algo que está
documentando com uma explicação excelente ?
Eu sei porque. É porque essa lista é fantástica, mesmo com uma
documentação incrível as pessoas gastam seu tempo e gozam paciência
para ajudar o próximo.
sppm++
2011/6/10 Andre Carneiro <andregarciacarneiro em gmail.com>:
> Eu sinceramente concordo com o Blabos, e digo que prefiro o mod troll on(pq
> o Blabos ta pegando leve...), embora alguns old trolls hoje em dia pareçam
> meio duvidosos sobre os benefícios disso a longo prazo...
>
> De qualquer forma...
> Isto é um array!
> my @array = (1,2,3,4,5);
> Isto é um hash!
> my %hash = (1=>'a',2=>'b');
> #ou
> my %hash = (1,'a',2,'b'); #mesma coisa...
> Ambos são listas!
> Agora veja:
> my $array_ref = [1,2,3,4,5];
> my $hash_ref = [1=>'a',2=>'b'];
> Ambos são referências. O primeiro é um arrayref(referencia para array). O
> segundo é um hashref(referencia para hash)
>
> Mas vc pode misturar as coisas assim, por exemplo:
> my @array = (1,2,{ 1 => 'a'});
> my $item = $array[2]; #em $item vai ter uma referencia para hash
>
> #ou assim:
> my %hash = (1=>'a',2 => [ 1,2,3,4,5 ]);
> my $item2 = $hash{2}->[0]; #aqui tem uma referencia para o primeiro elemento
> do arrayref, ou seja, 1...
>
> #ou assim:
> my $array = [1,2,3,4,5,{1=>'a'}];
> my $item3 = $array->[5]->{1}; # Isto recupera o scalar referenciado pela
> chave 1, no hashref mais interno, ou seja, 'a'
> # E assim por diante..
> my $hash = {1 => [1,2,3, { sbrebows => 'naktobrowlious'} , [6,7,8] ] ,
> 'skandowblevers' => 'bla' ,
> } ;
> .
> my $item4 = $hash->{'skandowblevers'}; #tem a string(scalar) 'bla'
> #poxa! Mas como eu acesso o numero 7 que ta no arrayref mais interno???
> my $chatice = $hash->{1}->[4]->[1]; #acho q ta certo...mas ja da pra
> entender a ideia, certo?
> Entendendo isso eu posso dizer com certeza que vc estará dando um GIGANTESCO
> passo para entender o que você estiver afim de entender sobre Perl. Com
> exceção do módulo POE(brincadeira) :-p
>
> # A limitação teoricamente é a memória da maquina. Mas eu nunca testei até o
> limite. Isso provavelmente não seria lá uma coisa muito legal de se fazer
> dependendo do caso, sei la...
>
> Mais informações? Desculpem, mas eu tenho certeza que isso é para o próprio
> bem de um iniciante em qualquer merda q seja. Experiência própria...
> RTFM aqui pra começar:
> http://perldoc.perl.org/perlintro.html
> http://perldoc.perl.org/perlreftut.html
> http://perldoc.perl.org/perldsc.html
>
> ESTUDE, e traga as suas dúvidas POSTANDO O QUE vc quer fazer e COMO VC
> TENTOU fazer. Caso contrário fica difícil te ajudar...
>
>
>
> Cheers!
>
>
> 2011/6/9 Renato Santos <renato.cron em gmail.com>
>>
>> blabos nao precisava falar neste tom neh ;P
>> cabou cerveja?
>> pelo menos aqui, onde trabalho, é normal falar array de hash que
>> automagicamente sabemos que é uma array[ref] de hashref
>>
>> 2011/6/9 Hernan Lopes <hernanlopes em gmail.com>
>>>
>>> vc se refere a estrutura de dados.
>>> um hash é "chave --> valor" ( onde valor pode ser qualquer coisa)
>>> array é uma lista de coisas.. pode ser uma lista de itens de compra, ou
>>> uma lista de hash, etc
>>> my $hash_frutas_cores = {
>>> banana => 'amarelo',
>>> abacate => 'verde',
>>> mamao => 'laranja',
>>> };
>>> my @lista_frutas = (
>>> 'banana',
>>> 'abacate',
>>> 'mamao',
>>> );
>>> foreach my $fruta ( @lista_frutas ) {
>>> print "\nA cor da frutinha $fruta é: " . $hash_frutas_cores->{ $fruta
>>> } ;
>>> }
>>> print "\nhmm... frutinha....";
>>>
>>> vc precisa aprender sobre scalars..
>>> veja dois exemplos de array:
>>> A. exemplo array1:
>>> my @lista_frutas = (
>>> 'banana',
>>> 'abacate',
>>> 'mamao',
>>> );
>>> foreach my $item ( @lista_frutas ) {
>>> print $item;
>>> }
>>> B. exemplo array2:
>>> my $lista_frutas = [
>>> 'banana2',
>>> 'abacate2',
>>> 'mamao2',
>>> ];
>>> foreach my $item ( @{ $lista_frutas } ) {
>>> print $item;
>>> }
>>>
>>> Agora, 2 exemplos de hash:
>>> A. exemplo de hash
>>> my $hash_item = {
>>> banana => 'amarela',
>>> laranja => 'laranja',
>>> };
>>> foreach my $key ( keys %{ $hash_item } ) {
>>> print $hash_item->{ $key };
>>> }
>>>
>>> B. outro exemplo de hash:
>>> my %hash_item = (
>>> banana => 'amarela',
>>> laranja => 'laranja',
>>> );
>>> foreach my $key ( keys %hash_item ) {
>>> print "\n" . %hash_item{ $key };
>>> }
>>>
>>> 2011/6/9 Teddy Hammer <teddyhammer em hotmail.com>
>>>>
>>>> Ae povo, blz?
>>>> Tava olhando uns exemplo que baixei da net sobre hash de hash, array de
>>>> hash. Complicado de visualizar a coisa heim!!!
>>>> Num tem nada mais facil pra entender isso?
>>>>
>>>> =begin disclaimer
>>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>> SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>> =end disclaimer
>>>>
>>>
>>>
>>> =begin disclaimer
>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>> SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>> =end disclaimer
>>>
>>
>>
>>
>> --
>> Renato Santos
>> http://www.renatocron.com/blog/
>>
>> =begin disclaimer
>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>> SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>> =end disclaimer
>>
>
>
>
> --
> André Garcia Carneiro
> Analista/Desenvolvedor Perl
> (11)82907780
>
> =begin disclaimer
> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
> SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>
--
"If you’ve never written anything thoughtful, then you’ve never had
any difficult, important, or interesting thoughts. That’s the secret:
people who don’t write, are people who don’t think."
More information about the SaoPaulo-pm
mailing list