[SP-pm] Dúvida de iniciante Not an ARRAY reference
Daniel Vinciguerra
dan.vinciguerra at gmail.com
Mon Sep 10 07:02:29 PDT 2012
O problema é que você estava tentando dar um foreach em uma estrutura de
hash/array codificada como JSON na resposta... sendo assim quando você
dava o foreach, o mesmo não entendia aquela variável como sendo uma
estrutura correspondente.
Tirando o json a coisa rolou porque assim vocês estava retornando de fato
uma referencia de um hash/array validos.
[]'s
*
Daniel Vinciguerra*
Web Solutions Architect and Co-Owner at Bivee
http://github.com/dvinciguerra <http://github.com/dvinciguerra>
2012/9/10 Jose Nilton <jniltinho at gmail.com>
> Alterei a linha $self->render(results => {json => $queue}); para:
>
> $self->render(results => $queue);
>
>
> E funcionou.
>
>
> Em 10 de setembro de 2012 07:37, Renato Santos <renato.cron at gmail.com>escreveu:
>
> O erro não tá na declaração do results? Devia ser um array, não um hash.
>> [{}, {},.. ]
>> Em 10/09/2012 07:25, "Lucas Moraes" <lucastiagodemoraes at gmail.com>
>> escreveu:
>>
>> com foreach:
>>>
>>> foreach my $key (keys %$results){
>>> print $key;
>>> }
>>>
>>> e
>>>
>>> foreach my $value (values %$results){
>>> print $value;
>>> }
>>>
>>> http://perldoc.perl.org/functions/keys.html
>>>
>>>
>>> Em 8 de setembro de 2012 21:51, Jose Nilton <jniltinho at gmail.com>escreveu:
>>>
>>>>
>>>> Fiz assim,
>>>>
>>>> while ( my ($key, $value) = each(%$results) ) {
>>>> print "$key => $value\n";
>>>> }
>>>>
>>>>
>>>> Só aparece esse erro:
>>>> Using a hash as a reference is deprecated at (eval 242)
>>>>
>>>>
>>>> Em 8 de setembro de 2012 20:25, Jose Nilton <jniltinho at gmail.com>escreveu:
>>>>
>>>>
>>>>> Meu templete:
>>>>>
>>>>> <!DOCTYPE html>
>>>>> <html>
>>>>> <head><title>Queue results</title></head>
>>>>> <body>
>>>>> % for my $result (@$results) {
>>>>> <p><%= $result->{json} %></p>
>>>>> % }
>>>>> </body>
>>>>> </html>
>>>>>
>>>>>
>>>>> Minha action no Mojo:
>>>>>
>>>>> sub queue {
>>>>> my $self = shift;
>>>>> my $queue = $self->getQueue;
>>>>> $self->render(results => {json => $queue});
>>>>> }
>>>>>
>>>>>
>>>>> Erro:
>>>>>
>>>>> *Not an ARRAY reference at template "example/queue2.html.ep" line 5, near " <p><%= $result->{json} %></p>".*
>>>>>
>>>>> 1.
>>>>>
>>>>> <!DOCTYPE html>
>>>>>
>>>>> 2.
>>>>>
>>>>> <html>
>>>>>
>>>>> 3.
>>>>>
>>>>> <head><title>Queue results</title></head>
>>>>>
>>>>> 4.
>>>>>
>>>>> <body>
>>>>>
>>>>> 5.
>>>>>
>>>>> % for my $result (@$results) {
>>>>>
>>>>> 6.
>>>>>
>>>>> <p><%= $result->{json} %></p>
>>>>>
>>>>> 7.
>>>>>
>>>>> % }
>>>>>
>>>>> 8.
>>>>>
>>>>> </body>
>>>>>
>>>>> 9.
>>>>>
>>>>> </html>
>>>>>
>>>>>
>>>>> *Stash*
>>>>>
>>>>> {
>>>>> 'controller' => 'example',
>>>>> 'action' => 'queue2',
>>>>> 'results' => {
>>>>> 'json' => {
>>>>> 'pop.com.br' => 1,
>>>>> 'uol.com' => 3,
>>>>> 'yuol.com.br' => 1,
>>>>> 'hotmael.com' => 2,
>>>>> 'hotmnail.com' => 1,
>>>>> 'hotmai.com' => 2,
>>>>> 'gamail.com' => 1,
>>>>> 'sodexo.com.br' => 2
>>>>> }
>>>>> }
>>>>> }
>>>>>
>>>>>
>>>>> Como eu faço esse mapeamento.
>>>>>
>>>>> Obrigado, desculpe por essa dúvida.
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> ..............................................................................
>>>>> *Com Deus todas as coisas são possíveis* ::: LinuxPro<http://www.linuxpro.com.br>
>>>>>
>>>>> *"A qualidade nunca se obtém por acaso; ela é sempre o resultado do
>>>>> esforço inteligente." (John Ruskin)
>>>>> "A mente que se abre a uma nova ideia jamais volta ao seu tamanho
>>>>> original" (Albert Einstein)*
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> ..............................................................................
>>>> *Com Deus todas as coisas são possíveis* ::: LinuxPro<http://www.linuxpro.com.br>
>>>>
>>>> *"A qualidade nunca se obtém por acaso; ela é sempre o resultado do
>>>> esforço inteligente." (John Ruskin)
>>>> "A mente que se abre a uma nova ideia jamais volta ao seu tamanho
>>>> original" (Albert Einstein)*
>>>>
>>>>
>>>> =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
>>>
>>>
>> =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
>>
>>
>
>
> --
>
> ..............................................................................
> *Com Deus todas as coisas são possíveis* ::: LinuxPro<http://www.linuxpro.com.br>
>
> *"A qualidade nunca se obtém por acaso; ela é sempre o resultado do
> esforço inteligente." (John Ruskin)
> "A mente que se abre a uma nova ideia jamais volta ao seu tamanho
> original" (Albert Einstein)*
>
>
> =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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20120910/0ade2c9f/attachment-0001.html>
More information about the SaoPaulo-pm
mailing list