<div><font face="courier new,monospace">Puxa Adriano interessante este hack e o&nbsp;módulo, mas é bom deixar claro um negócio para as &quot;crianças&quot; da lista : &quot;Não faça isto em&nbsp;casa sem a supervisão de um adulto :) &quot;.</font></div>

<div><font face="courier new,monospace"></font>&nbsp;</div>
<div><font face="courier new,monospace">Se eu entendi o que o Lucas está querendo é &#39;desabilitar&#39; o tratamento de erro, mas isto tem os teus problemas, tipo nunca conseguir descobrir um problema no sistema :( !!!</font></div>

<div><font face="Courier New"></font>&nbsp;</div>
<div><font face="Courier New">Só enfatizando a importância e necessidade de um tratamento de erro, gosto de utilizar uma experiência que tive com o Champs. Estavamos trabalhando num projeto e ele me mostrou que na codificação do módulo eu tenho que me preocupar&nbsp;apenas com o meu universo, qualquer coisa diferente disto devo gerar uma excessão (erro) e madar o código para cima. As camadas superiores é quem devem cuidar de erros não esperados, e se não o tratar morrer na cara do usuário.</font></div>

<div><font face="Courier New"></font>&nbsp;</div>
<div><font face="Courier New">É isto aí, cada vez mais descobrimos que podemos fazer quase tudo bem perl, mas temos que utilizar esta força com cuidado.</font></div>
<div><font face="Courier New"></font>&nbsp;</div>
<div><font face="Courier New">Abraços,</font></div>
<div><font face="Courier New"></font>&nbsp;</div>
<div><font face="Courier New">Solli M. Honório</font></div>
<div><font face="Courier New"></font>&nbsp;</div>
<div class="gmail_quote">2008/4/26 Adriano Ferreira &lt;<a href="mailto:a.r.ferreira@gmail.com">a.r.ferreira@gmail.com</a>&gt;:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div class="Ih2E3d">2008/4/25 Lucas Mateus &lt;<a href="mailto:lucasmateus.oliveira@gmail.com">lucasmateus.oliveira@gmail.com</a>&gt;:<br></div>
<div>
<div></div>
<div class="Wj3C7c">&gt; use Net::FTP;<br>&gt;<br>&gt; BEGIN {<br>&gt; &nbsp; &nbsp; $SIG{__DIE__} = &#39;IGNORE&#39;<br>&gt; }<br>&gt;<br>&gt; my $ftp = Net::FTP-&gt;new();<br>&gt;<br>&gt; $ftp-&gt;abcd;<br>&gt;<br>&gt; print &quot;TESTE\n&quot;;<br>
&gt; exit(1);<br>&gt;<br>&gt;<br>&gt; Alguem sabe dizer se esse erro emite sinal ?<br><br></div></div>Eu acabei de lembrar de um &#39;hack&#39; horrível para fazer com que Net::FTP<br>ignore completamente a falta de um método chamado sobre suas<br>
instâncias, como é o caso do &quot;$ftp-&gt;abcd&quot; no seu exemplo.<br><br>Isto pode ser feito através do Class::BlackHole<br>(<a href="http://search.cpan.org/perldoc?Class::BlackHole" target="_blank">http://search.cpan.org/perldoc?Class::BlackHole</a>).<br>
<br>Abaixo está um ligeira modificação do seu exemplo. Ao invés de setar<br>em um BEGIN, o $SIG{__DIE__} para &#39;IGNORE&#39; que não funciona, o<br>Class::BlackHole é carregado (via require) e adicionado ao final do<br>
@ISA do Net::FTP. Daí em diante, qualquer chamada de método<br>inexistente em instâncias de Net::FTP será complacente e não fará<br>absolutamente nada (inclusive não morrerá com &quot;Can&#39;t locate object<br>method &quot;abcd&quot; via package &quot;Net::FTP&quot;&quot;).<br>
<br>Foi necessário transformar o<br><br>&nbsp; &nbsp; Net::FTP-&gt;new()<br><br>para<br><br>&nbsp; &nbsp; Net::FTP-&gt;new( $host )<br><br>pois do contrário o construtor do Net::FTP retorna &#39;undef&#39; por não<br>achar um servidor ftp válido. (Sobre &quot;undef&quot;, método nenhum pode ser<br>
chamado.)<br><br>Experimente este código em um arquivo &quot;lucas.pl&quot;<br><br>$ perl lucas.pl ; echo $?<br>TESTE<br>1<br><br><br>#############<br><br># lucas.pl<br>
<div class="Ih2E3d">use Net::FTP;<br><br>#BEGIN {<br># &nbsp; &nbsp;$SIG{__DIE__} = &#39;IGNORE&#39;<br></div># &nbsp;}<br><br>BEGIN {<br>&nbsp;require Class::BlackHole;<br>&nbsp; &nbsp;push @Net::FTP::ISA, qw( Class::BlackHole )<br>}<br><br>my $ftp = Net::FTP-&gt;new( &#39;<a href="http://cpan.hexten.net/" target="_blank">cpan.hexten.net</a>&#39; );<br>

<div class="Ih2E3d"><br>$ftp-&gt;abcd;<br><br>print &quot;TESTE\n&quot;;<br>exit(1);<br><br></div>#############<br>
<div>
<div></div>
<div class="Wj3C7c"><br>&gt; _______________________________________________<br>&gt; &nbsp;SaoPaulo-pm mailing list<br>&gt; &nbsp;<a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>&gt; &nbsp;<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
&gt;<br>_______________________________________________<br>SaoPaulo-pm mailing list<br><a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>&quot;o animal satisfeito dorme&quot;. - Guimarães Rosa