Humm... eu já usei com o módulo DBIx::SearchBuilder, e achei fantástico... porém...<br><br>O Damian Conway declara no Perl Best Practicals, na página 393, sobre Autoloading " Don´t use AUTOLOAD()" ...<br><br><br>
Eu confesso que isso me frustou, mas ele apresenta bons motivos...<br><br>"AUTOLOAD() doesn´t promote efficency, conciseness, robustness, or maintainability, ..."<br><br><br>Para quem já me viu com este livro em mãos...
<br> ... "Sim, agora eu li (parte)!" ;)<br><br>Eu tinha que me reposicionar justamente sobre manutenibilidade, pois estava fazendo parte de um projeto que deveria se acoplar a algo maior, e em um prazo muito curto de tempo (para o contratante).
<br><br><br>Sds,<br>Marco Antonio<br><br><br><br><div><span class="gmail_quote">Em 19/11/07, <b class="gmail_sendername">eden</b> <<a href="mailto:edencardim@gmail.com">edencardim@gmail.com</a>> escreveu:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On Nov 19, 2007 12:05 AM, Marco A P D'Andrade <<a href="mailto:mdacwb@gmail.com">mdacwb@gmail.com</a>> wrote:<br>> Só pra não ficar de fora ...<br>><br>> Me corrijam se eu estiver errado, mas a diferenca entre use e require é o
<br>> fato da primeira forçar a verificação no tempo de compilação, ou ... carga<br>> do script.<br>><br>> Se preparar um sistema realmente grande, vc deverá tomar varios cuidados<br>> para não acabar com alto desastroso em mãos, dentre eles, um fracionamento
<br>> coerente de módulos e forma de chamada.<br>><br>> Se vc tiver um sistema extenso, e utilizar a chamada padrão, com use, todo o<br>> codigo será validado. Claro... vc provavelmente nem vai perceber, pois<br>
> digamos que um sistema muito extenso vai ter o que, 50 ou 100 mil linhas ?<br>> Mas se for um projeto web, ao entrar em produção, com carga elevada, isso<br>> pesa.<br>><br>> Mas... em web para um projeto grande, não será utilizado CGI, será mod_perl,
<br>> ou fastcgi.<br>><br>> Bem... voltando ao ponto use vs require.<br>><br>> O use equivale a "BEGIN { require modulo; import modulo }", e não pode ser<br>> utilizado de forma condicional:<br>
><br>> #x<br>> if ( $modo == 1 ) {<br>> use Modulo1;<br>> } else {<br>> use ModuloX;<br>> }<br>><br>> Enquanto que o require permite esta opção.<br>><br>> #x<br>> if ( $modo == 1 ) {
<br>> require Modulo1;<br>> } else {<br>> require ModuloX;<br>> }<br>><br>> # <a href="http://Modulo1.pm">Modulo1.pm</a><br>> package Modulo1;<br>> print "Begin Modulo1\n";<br>
> 1;<br>><br>> # ModuloX.pm<br>> package Modulo1;<br>> print "Begin ModuloX\n";<br>> X;<br>><br>><br>> Crie os arquivos e faça o teste ;)<br>><br>> <a href="http://perldoc.perl.org/functions/require.html">
http://perldoc.perl.org/functions/require.html</a><br>> <a href="http://perldoc.perl.org/functions/use.html">http://perldoc.perl.org/functions/use.html</a><br>><br>> PS: Conhecimento estraído de leitura de discussões na Cascavel-PM. Como
<br>> diria meu chefe... soluções em busca de problemas ;)<br><br>E só pra não ficar de fora também... ;) Você sempre pode usar coisas<br>como AutoLoader:<br><a href="http://search.cpan.org/~smueller/AutoLoader-5.63/lib/AutoLoader.pm">
http://search.cpan.org/~smueller/AutoLoader-5.63/lib/AutoLoader.pm</a><br><br>Disclaimer: nunca usei esse treco em produção, experimente por sua<br>conta e risco ;)<br><br>--<br><a href="http://edenc.vox.com">edenc.vox.com
</a><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">http://mail.pm.org/mailman/listinfo/rio-pm
</a><br></blockquote></div><br>