[SP-pm] atalhos toscos

Eden Cardim edencardim at gmail.com
Tue Oct 5 15:51:20 PDT 2010


2010/10/5 Renato Santos <renato.cron em gmail.com>:
> Tenho em mente que o
> =()=
> ou mais formatado:
> $var = () = @array
> Faz com que todo o conteudo do @array seja jogado nas variaveis
> undef,undef,... e
> quando diz que um scalar = array, ele recebe o valor dos elementos da
> array.
> Me precipito a dizer que, como o perl não esta com strict, quando você faz:
> $var = () = $ref_array
> o perl lê o $ref_array como array e joga pro (), que por sua vez é uma array
> verdadeira, e joga o valor de quantidade no $var, pois se fosse $var =
> $ref_array iria receber a associação

Na verdade, o =()= é o um "pseudo-operador", são dois operadores de
atribuição, com uma lista vazia no meio. A lista vazia serve para
forçar o contexto de lista no operador de atribuição à direita.
Atribuir a uma lista vazia resulta em um no-op, mas como o operador de
atribuição tem o efeito colateral de retornar o valor atribuído, a
lista atribuída também é passada para o segundo operador de
atribuição.

-- 
   Eden Cardim       Need help with your Catalyst or DBIx::Class project?
  Code Monkey                    http://www.shadowcat.co.uk/catalyst/
 Shadowcat Systems Ltd.  Want a managed development or deployment platform?
http://blog.edencardim.com/            http://www.shadowcat.co.uk/servers/


More information about the SaoPaulo-pm mailing list