[SP-pm] Dúvida entre Scalar Context e List Context

"Flávio R. Lopes" flavio.lopes at links.inf.br
Wed Mar 24 21:15:42 PDT 2010


É....acho que sou eu quem vai pagar as brejas! :)

Pesquisei na Net e vi estes:
- Scalar
- List
- Void
- Boolean

Fontes:
http://www.perlmonks.org/?node_id=738558
http://www252.pair.com/comdog/mastering_perl/Chapters/contexts.html

Qual seria o quinto tipo?


Luis Motta Campos escreveu:
> Flávio R. Lopes wrote:
>   
>> Blz Solli e Nelson....acho que deu pra entender!
>>
>> É que no livro aparece o seguinte exemplo que me deixou em dúvida:
>>
>> @rocks = qw( talc quartz jade obsidian );
>> print "How many rocks do you have?\n";
>> print "I have ", @rocks, " rocks!\n";        # WRONG, prints names of rocks
>> print "I have ", scalar @rocks, " rocks!\n"; # Correct, gives a number
>>
>> Então se eu utilizasse a penultima linha, eu estaria retornando um
>> Contexto de Lista (pois me traria a lista dos nomes das pedras)
>> Já na última, estou forçando "@rocks" a me retornar um valor escalar, ou
>> seja, esta linha é um Contexto Escalar! (pois me retorna o número de
>> elementos que tenho no meu array)
>>
>> É isso mesmo?
>>     
>
> Quase. Você está confuso, ainda, sobre o que é "contexto". Contexto quer
> dizer "o que está em volta, o que dá sentido".
>
> Contexto de lista é (entre outras coisas) uma chamada de função:
>
> my_example_function(
>   qw( tudo aqui dentro tem contexto de lista ), @inclusive, #$isso
> );
>
> ( contexto, de, lista, claro );
>
> [ qw{ tudo dentro de '[' e ']' está em contexto de lista ];
>
> { aqui => 'também', é => 'tudo', contexto => 'de lista' };
>
> Contexto escalar é mais restritivo:
>
> scalar @lista; # contexto escalar "na marra"
>
> $escalar = @lista; # contexto escalar "explícito"
>
> $hash{ CHAVE } = $valor; # qual é o contexto em que "CHAVE" está?
>
> Lição de casa: existem mais contextos que apenas "lista" e "escalar".
> Eles são 5 no total. Encontre-os e leia sobre eles. Pontos extras (e uma
> rodada de cerveja paga por mim) se você postar o que encontrar aqui.
>
>
> Putamplexos
>   



More information about the SaoPaulo-pm mailing list