<div dir="ltr"><p>&gt; Faz sentido, pois além de comentar os &#39;fecha blocos&#39;, também sempre executo o &#39;exit&#39; com algum valor ;) .... já sofro muito com programas que terminam sem código algum.</p><p></p><p>É eu sempre digo isso pro Viegas, digo que os codigos no exit() sao importante para os sysadmins, tbm sempre coloco algum codigo, apesar que 0 é um deles hehehehhehe, e so descubri isso pq peguei um codigo Perl que dava exit()&nbsp; no bloco CHECK mas o programa continuava executando, achei curioso, testei no Perl 5.8.8 e 5.10 (RH e Slackware) o comportamento é o mesmo.</p>
<p></p><p>Não achei nenhuma informação sobre esse comportamento do interpretador.</p><br><div class="gmail_quote">2008/9/1 Solli Honorio <span dir="ltr">&lt;<a href="mailto:shonorio@gmail.com">shonorio@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div dir="ltr">5.10 é muita modernidade pra mim ainda ;) <br><br>Solli M. Honório<div><div class="Wj3C7c"><br><br><div class="gmail_quote">
2008/9/1 Lucas Mateus <span dir="ltr">&lt;<a href="mailto:lucasmateus.oliveira@gmail.com" target="_blank">lucasmateus.oliveira@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="border-left:1px solid rgb(204, 204, 204);margin:0pt 0pt 0pt 0.8ex;padding-left:1ex"><div dir="ltr"><div>&gt; &lt;code&gt;<br>&gt; perl -e &#39;print &quot;teste\n&quot;; UNITCHECK { print &quot;dentro do unitcheck\n&quot;; exit 1 }; print &quot;outro tese\n&quot;&#39;<br>

&gt; &lt;code&gt;<br><br>&gt; o resultado será&nbsp;<br>
&gt; teste<br><p>&gt; dentro do unitcheck</p></div><p>E outra coisa, a saida não devia ser isso, devia ser apenas &quot;dentro do unitcheck&quot; pois para esse exemplo, o bloco UNITCHECK eh executado antes de qualquer coisa. Isso aconteceu pra mim, Perl 5.10<br>


</p><div><div><br><br><div class="gmail_quote">2008/9/1 Lucas Mateus <span dir="ltr">&lt;<a href="mailto:lucasmateus.oliveira@gmail.com" target="_blank">lucasmateus.oliveira@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="border-left:1px solid rgb(204, 204, 204);margin:0pt 0pt 0pt 0.8ex;padding-left:1ex">
<div dir="ltr"><p>Haaaa veja so, uma pequena modificação no seu codigo, e não sai mais</p><p>&lt;code&gt;<br>perl -e &#39;print &quot;teste\n&quot;; UNITCHECK { print &quot;dentro do unitcheck\n&quot;; exit}; print &quot;outro tese\n&quot;&#39;<br>



&lt;code&gt;</p><p>OU</p><div><p>&lt;code&gt;<br>perl -e &#39;print &quot;teste\n&quot;; UNITCHECK { print &quot;dentro do unitcheck\n&quot;; exit 0 }; print &quot;outro tese\n&quot;&#39;<br>&lt;code&gt;<br>
<br></p></div><p>Percebi que somente quando a função exit() preence a var $? com valor diferente de 0 que a saida do programa é feita.</p>
<br><div class="gmail_quote">2008/9/1 Solli Honorio <span dir="ltr">&lt;<a href="mailto:shonorio@gmail.com" target="_blank">shonorio@gmail.com</a>&gt;</span><div><div><br><blockquote class="gmail_quote" style="border-left:1px solid rgb(204, 204, 204);margin:0pt 0pt 0pt 0.8ex;padding-left:1ex">



<div dir="ltr">Ola meu querido, você vai fazer xixi na cama desta maneira brincando com fogo... mas vamos lá ...<br><br>O UNITCHECK e CHECK estão terminando sim o teu programa, experimenta terminar com &#39;exit 10&#39; e capturar o código de retorno, ou simplesmente algo do tipo<br>




<br>&lt;code&gt;<br>perl -e &#39;print &quot;teste\n&quot;; UNITCHECK { print &quot;dentro do unitcheck\n&quot;; exit 1 }; print &quot;outro tese\n&quot;&#39;<br>&lt;code&gt;<br><br>o resultado será <br>teste<br>dentro do unitcheck<br>




<br>... 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 ...<br><br><br><div class="gmail_quote">2008/9/1 Lucas Mateus <span dir="ltr">&lt;<a href="mailto:lucasmateus.oliveira@gmail.com" target="_blank">lucasmateus.oliveira@gmail.com</a>&gt;</span><br>




<blockquote class="gmail_quote" style="border-left:1px solid rgb(204, 204, 204);margin:0pt 0pt 0pt 0.8ex;padding-left:1ex"><div><div>Hj tive uma dúvida quanto aos blocos especias de execução, BEGIN, UNITCHECK, CHECK, INIT e END.<br>





<br>
<br>
<br>
Quanto a ordem de execução:<br>
<br>
&lt;code&gt;<br>
perl -e &#39;END{print &quot;END&quot;.$/} BEGIN{print &quot;BEGIN&quot;.$/} INIT{print &quot;INIT&quot;.$/} UNITCHECK{print &quot;UNITCHECK&quot;.$/} CHECK{print &quot;CHECK&quot;.$/} print &quot;teste&quot;.$/;&#39;<br>





&lt;/code&gt;<br>
<br>
RESULTADO:<br>
<br>
BEGIN<br>
UNITCHECK<br>
CHECK<br>
INIT<br>
teste<br>
END<br>
<br>
<br>
<br>
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 ?<br>
<br>
MEUS TESTES:<br>
<br>
perl -e &#39;print &quot;teste\n&quot;; UNITCHECK { 0 || exit }&#39; &nbsp;# teste<br>
perl -e &#39;print &quot;teste\n&quot;; CHECK { 0 || exit }&#39; &nbsp; &nbsp; &nbsp;# teste<br>
perl -e &#39;print &quot;teste\n&quot;; INIT { 0 || exit }&#39; &nbsp; &nbsp; &nbsp; # [nada]<br>
<br>
<br>
<br>
<br>
LEITURA: <a href="http://perldoc.perl.org/perlmod.html#BEGIN%2c-UNITCHECK%2c-CHECK%2c-INIT-and-END" target="_blank">http://perldoc.perl.org/perlmod.html#BEGIN%2c-UNITCHECK%2c-CHECK%2c-INIT-and-END</a><br>
<br>
<br></div></div>
_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>&quot;o animal satisfeito dorme&quot;. - Guimarães Rosa<br>
</div>
<br>_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br></blockquote></div></div></div><br></div>
</blockquote></div><br></div></div></div>
<br>_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br></blockquote></div><br><br clear="all"><br>-- <br>&quot;o animal satisfeito dorme&quot;. - Guimarães Rosa<br>


</div></div></div>
<br>_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br></blockquote></div><br></div>