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

Solli Honorio shonorio at gmail.com
Thu Mar 25 04:01:29 PDT 2010


 Void e  Boolean não são tipo de variáveis, pelo menos não no Perl 5. O
perldoc perldata vai lhe dar o caminho para os outros tipos ...

O Void e Boolean que você viu nos links informados são contexto de retorno
da scalar, ou seja quando é considerado falso/verdadeiro, ou quando não é
aguardado algum retorno.

O link do mastering explica bem estas informações ...

Solli M. Honório

Em 25 de março de 2010 04:15, "Flávio R. Lopes"
<flavio.lopes em links.inf.br>escreveu:

> É....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
>>
>>
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>



-- 
"o animal satisfeito dorme". - Guimarães Rosa
-------------- Pr?xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20100325/218f594a/attachment.html>


More information about the SaoPaulo-pm mailing list