<div><font face="courier new,monospace">Puxa Adriano interessante este hack e o módulo, mas é bom deixar claro um negócio para as "crianças" da lista : "Não faça isto em casa sem a supervisão de um adulto :) ".</font></div>
<div><font face="courier new,monospace"></font> </div>
<div><font face="courier new,monospace">Se eu entendi o que o Lucas está querendo é 'desabilitar' 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> </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 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> </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> </div>
<div><font face="Courier New">Abraços,</font></div>
<div><font face="Courier New"></font> </div>
<div><font face="Courier New">Solli M. Honório</font></div>
<div><font face="Courier New"></font> </div>
<div class="gmail_quote">2008/4/26 Adriano Ferreira <<a href="mailto:a.r.ferreira@gmail.com">a.r.ferreira@gmail.com</a>>:<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 <<a href="mailto:lucasmateus.oliveira@gmail.com">lucasmateus.oliveira@gmail.com</a>>:<br></div>
<div>
<div></div>
<div class="Wj3C7c">> use Net::FTP;<br>><br>> BEGIN {<br>> $SIG{__DIE__} = 'IGNORE'<br>> }<br>><br>> my $ftp = Net::FTP->new();<br>><br>> $ftp->abcd;<br>><br>> print "TESTE\n";<br>
> exit(1);<br>><br>><br>> Alguem sabe dizer se esse erro emite sinal ?<br><br></div></div>Eu acabei de lembrar de um 'hack' 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 "$ftp->abcd" 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 'IGNORE' 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 "Can't locate object<br>method "abcd" via package "Net::FTP"").<br>
<br>Foi necessário transformar o<br><br> Net::FTP->new()<br><br>para<br><br> Net::FTP->new( $host )<br><br>pois do contrário o construtor do Net::FTP retorna 'undef' por não<br>achar um servidor ftp válido. (Sobre "undef", método nenhum pode ser<br>
chamado.)<br><br>Experimente este código em um arquivo "lucas.pl"<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># $SIG{__DIE__} = 'IGNORE'<br></div># }<br><br>BEGIN {<br> require Class::BlackHole;<br> push @Net::FTP::ISA, qw( Class::BlackHole )<br>}<br><br>my $ftp = Net::FTP->new( '<a href="http://cpan.hexten.net/" target="_blank">cpan.hexten.net</a>' );<br>
<div class="Ih2E3d"><br>$ftp->abcd;<br><br>print "TESTE\n";<br>exit(1);<br><br></div>#############<br>
<div>
<div></div>
<div class="Wj3C7c"><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>
><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>"o animal satisfeito dorme". - Guimarães Rosa