[SP-pm] Referências

Luis Motta Campos luismottacampos at yahoo.co.uk
Tue Nov 18 02:10:36 PST 2008


Alexei Znamensky wrote:
> Eu acho que, se você vai evitar os protótipos, não há sentido em fazê-los.
> Protótipos de funções/métodos e tipagem forte servem para pegar, em tempo de
> compilação, enganos que poderiam ser difíceis (ou pelo menos chatos) de
> depurar em tempo de execução. Um mecanismo que contorne a prototipagem é
> algo que pode-se ter na manga, apenas para fazer uma gambiarra de última
> hora.

Hum. Quase. Em Perl, protótipos não pegam erros de tipagem: Perl é uma
linguagem sem tipos de dados. :) A gente organiza informação apenas por
forma de armazenamento (escalar, array, hash-table).

Protótipos em Perl são uma TRANSFORMAÇÃO que você pode aplicar sobre os
dados na chamada da função. Por exemplo, transformar arrays em
referências automáticamente, ou forçar contexto escalar.

sub proto_example ( $;$ ) {
  print "@_";
}

my @arg = ( 1, 2, 3 );

proto_example @arg; # imprime "3". Por que?

&proto_example @arg; # imprime "123". Por que?

> Eu acho que o uso do & para isso, no perl, é um convite aberto à encrenca.

Afirmação certa, motivos errados. :)

Putamplexos.
-- 
Luis Motta Campos is a software engineer,
Perl Programmer, foodie and photographer.


More information about the SaoPaulo-pm mailing list