[SP-pm] hash de hash
Andre Carneiro
andregarciacarneiro at gmail.com
Thu Jun 9 20:52:33 PDT 2011
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 at 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 at 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 at 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 at 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 at 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 at pm.org
> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>
--
André Garcia Carneiro
Analista/Desenvolvedor Perl
(11)82907780
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20110610/816ad076/attachment-0001.html>
More information about the SaoPaulo-pm
mailing list