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

Solli Honorio shonorio at gmail.com
Thu Mar 25 05:28:53 PDT 2010


Em 25 de março de 2010 12:14, Solli Honorio <shonorio em gmail.com> escreveu:

> Desculpa, fiz confusão com tipo de contexto e com tipo de variável ...
>
> então o quinto contexto é ........
>
> ... bem que eu poderia responder e ter a minha cerveja, já que deste fez
> estou próximo do Luis  :D ....
>
>
Quer saber de um coisa, não tem restrições então vou explicar ...

temos também o contexto de interpolação, que é aquela mágica que faz o perl
sabe que aquilo dentro de uma sentença é uma variável e não um literal, por
exemplo :

my $total = 10;
print qq/O total é : $total\n/;

o resultado será:  O total é 10

isto é o mesmo que :
print q/O total é : / . $total . qq/\n/;

mas é muito diferente de fazer :
print q/O total é : $total\n/;

está aí o quinto contexto, que no Programming in Perl realmente é o quinto
:D ...

Champs, quero a minha breja no próximo ES de London, ou seria de Amsterdan ?
:D !!!



> Solli M. Honório
>
> Em 25 de março de 2010 11:01, Solli Honorio <shonorio em gmail.com> escreveu:
>
>  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
>>
>
>
>
> --
> "o animal satisfeito dorme". - Guimarães Rosa
>



-- 
"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/db0dc53c/attachment.html>


More information about the SaoPaulo-pm mailing list