Só para o conhecimento de vocês, alterei o código de : $alguma_coisa = ($array->[0]->{data} || time);
... para .. $alguma_coisa = scalar @$array ? $array->[0]->{data} : time; Não tenho certeza se é a melhor opção, mas depois de comer um monte de tempo nisto, foi a mais rápida que veio a minha cabeça. Em 14 de março de 2013 20:51, Solli Honorio <shono...@gmail.com> escreveu: > Pessoal, > > Hoje passei uma parte do dia tentando descobrir porquê a minha lógica não > estava funcionando, e no final descobri que era uma pegadinha do internals > do Perl. > > O lance era o seguinte : > > <code> > > $array = []; > say scalar @$array; #retorna ZERO ! > $alguma_coisa = ($array->[0]->{data} || time); > say scalar @$array; #retorna UM ! > > if ( scalar @$array ) { > # destrói tudo ! > } else { > # destrói menos ! > } > > </code> > > > Este era o meu poblema, eu achei que se não existisse o elemento no array, > eu poderia continua a minha vidinha, afinal mesmo fazendo um > Data::Printer::p o array sempre volta empty. Mas o contador de elementos > dele altera, ferrando toda a minha lógica depois. > > É isto aí ! > > Abraços, > > Solli Honorio > > -- > "o animal satisfeito dorme". - Guimarães Rosa > -- "o animal satisfeito dorme". - Guimarães Rosa
=begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer