[SP-pm] Dúvida entre Scalar Context e List Context
Thiago Rondon
thiago at aware.com.br
Thu Mar 25 09:21:57 PDT 2010
Solli Honorio escreveu:
>
> 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/;
Apenas uma observação, esta mágica (gramática) é uma operação semântica,
as linguagems dinâmicas tem como caracteristica a /semântica dinâmica/.
# Outro exemplo, /Tipagem dinâmica/
my $foo = "bar";
$foo = $foo + 1;
$foo = 1;
$foo = $foo + 1;
Outra observação que faço, para complicar ou descomplicar o contexto, é
que você pode falar sobre o contexto de passagem de dados, assim como o
contexto na representacão de dados e etc..
O termo 'contexto' pode ser usado em diferentes situações:
# [---------------- 1 ------------------]
my @lista = qq/O total é $total/ ;
# [--------- 2 -----------]
Aqui possuimos a gramática, que se utiliza do contexto para:
1 - Equivalência. (lista[0] = escalar)
2 - Interpolação.
Porém, mesmo tendo aplicatividades diferentes na gramática, contexto é
uma única coisa, é o 'o que está em volta, o que dá sentido' como o
Champs colocou.
=head1 PROGRAMANDO
Ou seja, o contexto definido talvez no livro "Perl Programming" (não
estou com ele agora) são sobre contextos (propriedades) distintos que
você irá se deparar nas N situações programando em Perl.
Como o Nilson colocou as mais importantes em /dialogos/ (ex.
equivalência), serão as listas e os escalares, que você irá utilizar
para definir o seu algoritimo na -maioria dos casos-. Já na questão da
interpolação, o contexto é utilizado para mudança de /sentido/ do que
esta explicito semanticamente, ou seja não vai alterar o teu algoritimo
mental provavelmente, mas irá alterar a forma que você irá escrever.
Ps.: Nada os impede de criar códigos para adicionar regras para novas
tipagens, e assim criar novos contextos por exemplo. Vide o módulo Want,
.... .
Meus centavos,
-Thiago Rondon
More information about the SaoPaulo-pm
mailing list