[Rio-pm] Os 5 blocos especiais

Solli Honorio shonorio em gmail.com
Segunda Setembro 1 15:41:03 PDT 2008


Ola meu querido, você vai fazer xixi na cama desta maneira brincando com
fogo... mas vamos lá ...

O UNITCHECK e CHECK estão terminando sim o teu programa, experimenta
terminar com 'exit 10' e capturar o código de retorno, ou simplesmente algo
do tipo

<code>
perl -e 'print "teste\n"; UNITCHECK { print "dentro do unitcheck\n"; exit 1
}; print "outro tese\n"'
<code>

o resultado será
teste
dentro do unitcheck

... outra coisa, no meu perl 5.8.8 o teu exemplo dá um erro no CHECK, mas
não olhei pq está ocorrendo isto, depois eu verifico em casa, abraço ...


2008/9/1 Lucas Mateus <lucasmateus.oliveira em gmail.com>

> Hj tive uma dúvida quanto aos blocos especias de execução, BEGIN,
> UNITCHECK, CHECK, INIT e END.
>
>
>
> Quanto a ordem de execução:
>
> <code>
> perl -e 'END{print "END".$/} BEGIN{print "BEGIN".$/} INIT{print "INIT".$/}
> UNITCHECK{print "UNITCHECK".$/} CHECK{print "CHECK".$/} print "teste".$/;'
> </code>
>
> RESULTADO:
>
> BEGIN
> UNITCHECK
> CHECK
> INIT
> teste
> END
>
>
>
> O que não consegui entender é porque os blocos UNITCHECK e CHECK não
> finalizam o programa com a função exit() como os blocos BEGIN e INIT ?
>
> MEUS TESTES:
>
> perl -e 'print "teste\n"; UNITCHECK { 0 || exit }'  # teste
> perl -e 'print "teste\n"; CHECK { 0 || exit }'      # teste
> perl -e 'print "teste\n"; INIT { 0 || exit }'       # [nada]
>
>
>
>
> LEITURA:
> http://perldoc.perl.org/perlmod.html#BEGIN%2c-UNITCHECK%2c-CHECK%2c-INIT-and-END
>
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>



-- 
"o animal satisfeito dorme". - Guimarães Rosa
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20080901/2c773d62/attachment.html>


Mais detalhes sobre a lista de discussão Rio-pm