[SP-pm] Entendendo Protótipos

breno breno at rio.pm.org
Tue Dec 23 05:42:57 PST 2008


2008/12/23 Luis Motta Campos <luismottacampos em yahoo.co.uk>:
> breno wrote:
>> protótipos são uma espécie de verificação de argumentos em tempo de
>> compilação, e permitem que vc chame subrotinas sem os parêntesis sem
>> gerar ambiguidade, como as funções built-in do Perl ("push", por
>> exemplo). A declaração de protótipos não envolve o nome da variável
>> onde vc pretende colocá-la, apenas o símbolo do tipo de variável ($,
>> @, %, &) que espera receber como parâmetros.
>
> ERRADO.
>
> Protótipos não verificam nada sobre o conteúdo dos parâmetros passados.
> Não verificam nem mesmo se os parâmetros passados realmente existem.
>

$ perldoc perlsub

<snip>
 Prototypes

       Perl supports a very limited kind of compile-time argument checking
       using function prototyping.
</snip>

Meu comentário foi praticamente uma tradução: "protótipos são uma
espécie de verificação de argumentos em tempo de compilação". Faltou
só o "muito limitado".

Talvez eu tenha deixado (mal) subentendido que estava falando de
protótipos "tradicionais" quando disse que a declaração não envolvia o
nome da variável e sim o símbolo do tipo esperado, mas foi pq achei
que o Daniel estava se referindo a eles pelo próprio exemplo que usou
(daí minha sugestão do Method::Signatures). Talvez não tenha ficado
tão claro quando disse "e permitem" e não "e permitem (entre outras)".
Talvez eu tenha escrito rápido demais. Talvez vc tenha lido rápido
demais.

Ou eu falei algo de errado mesmo?

De qualquer forma, o seu ERRADO poderia ter sido facilmente
substituido por COMPLEMENTANDO ou mesmo EXPLICANDO MELHOR, ou
simplesmente omitido por completo. Mas aí não seria vc, não é mesmo?
:-)

Parabéns pela completa e didática explicação posterior. Apesar de ogro
vc tem muito mais paciência do que eu.


[]s

-b


More information about the SaoPaulo-pm mailing list