[Rio-pm] Os 5 blocos especiais

Lucas Mateus lucasmateus.oliveira em gmail.com
Segunda Setembro 1 19:32:53 PDT 2008


Haaaa veja so, uma pequena modificação no seu codigo, e não sai mais

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

OU

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

Percebi que somente quando a função exit() preence a var $? com valor
diferente de 0 que a saida do programa é feita.

2008/9/1 Solli Honorio <shonorio em gmail.com>

> 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
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20080901/f8e953a5/attachment-0001.html>


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