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

"Flávio R. Lopes" flavio.lopes at links.inf.br
Thu Mar 25 15:19:24 PDT 2010


Olá Solli!.....cara, quase vc me mata de susto!!....pensei: 
"Putz....então num tô entendo nada!..."
Mas blz!

E quanto a INTERPOLAÇÃO, pensei nela, mas ao mesmo tempo imaginanei que, 
dependo do contexto, ela assumiria um Scalar ou List, ou seja, logo ela 
seria ou um Escalar ou um List, por isso que acabei descartando a idéia....

Abraços!

Flávio

PS: Pessoal e por falar em abraço, adorei a definição de 
PUTAMPLEXOS....loco heim! :)

Solli Honorio escreveu:
>
> Em 25 de março de 2010 12:14, Solli Honorio <shonorio em gmail.com 
> <mailto: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
>     <mailto: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 <mailto: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 <mailto: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
> ------------------------------------------------------------------------
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm



More information about the SaoPaulo-pm mailing list