Na verdade não estou adicionando valor, o compilador está criando o
elemento para confirmar que ele não tem valor.

Eu estava debugando e quando eu digitava 'x $array' data empty array ref.
Mas depois num teste aparte utilizando o Data::Printer é mostrado uma nova
estrutura com valor nullo.

Ou seja, eu tinha na minha cabeça que ele iria dar problema logo de cara,
pois o elemento 0 não existe, não vou dar erro e continuar o processamento
(que queria isto), mas o comportamento na verdade foi do compilador criar a
estrutura (alocar) para dizer que não existe nada. Mas nunca é atribuído o
valor de time ao elemento.

Solli Honorio


Em 14 de março de 2013 20:55, Renato Santos <renato.c...@gmail.com>escreveu:

> Cara olhando agora esse código, mesmo meio alterado de guineense, você tá
> ponto sempre um elemento com valor de time caso não exista array.
> zero.data. Então o código tá certo, mesmo sem os parênteses
> Em 14/03/2013 20:52, "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
>>
>> =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
>>
>>
> =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
>
>


-- 
"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

Responder a