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

Andre Carneiro andregarciacarneiro at gmail.com
Thu Mar 25 04:53:20 PDT 2010


'Desassassiando' o português ...

'Pagarei uma cerveja para quem responder primeiro'...


Cheers!


Em 25 de março de 2010 08:51, Andre Carneiro
<andregarciacarneiro at gmail.com>escreveu:

> Contextos:
>
> Lista
> Escalar
> Boolean(tipo 'especial' de contexto escalar - RTFM abaixo)
> Void
>
> http://perldoc.perl.org/perldata.html#Context
>
> Luis, você falou de um quinto contexto. Estou tentando encontrar na
> documentação, mas conhecendo você deve estar nas 'entrelinhas'....
>
> Quem tiver tempo de ir atrás disso vá. Quem responder primeiro corretamente
> eu pago uma breja !
>
>
> Cheers!
>
>
>
> 2010/3/25 Solli Honorio <shonorio at gmail.com>
>
>  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 at 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 at pm.org
>>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>>>
>>
>>
>>
>> --
>> "o animal satisfeito dorme". - Guimarães Rosa
>>
>> _______________________________________________
>> SaoPaulo-pm mailing list
>> SaoPaulo-pm at pm.org
>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>>
>
>
>
> --
> André Garcia Carneiro
> Analista/Desenvolvedor Perl
> (11)82907780
>



-- 
André Garcia Carneiro
Analista/Desenvolvedor Perl
(11)82907780
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20100325/560bc637/attachment.html>


More information about the SaoPaulo-pm mailing list