<br><br><div><span class="gmail_quote">Em 19/11/07, <b class="gmail_sendername">Marco A P D&#39;Andrade</b> &lt;<a href="mailto:mdacwb@gmail.com">mdacwb@gmail.com</a>&gt; escreveu:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Só pra não ficar de fora ...<br><br>Me corrijam se eu estiver errado, mas a diferenca entre use e require é o fato da primeira forçar a verificação no tempo de compilação, ou ... carga do script.</blockquote><div><br>Exatamente! isso e o fato do use já importar funções exportadas...
<br>&nbsp;</div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Se preparar um sistema realmente grande, vc deverá tomar varios cuidados para não acabar com alto desastroso em mãos, dentre eles, um fracionamento 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 codigo será validado. Claro... vc provavelmente nem vai perceber, pois digamos que um sistema muito extenso vai ter o que, 50 ou 100 mil linhas ? Mas se for um projeto web, ao entrar em produção, com carga elevada, isso pesa.
</blockquote><div><br>O require tb valida o código, mas no momento em q vc o está usando, ou seja, vc pode &quot;distribuir a carga&quot; do sistema...<br>&nbsp;</div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Mas... em web para um projeto grande, não será utilizado CGI, será mod_perl, ou fastcgi.</blockquote><div><br>CGI?! quem se importa com CGI?! :) <br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Bem...&nbsp; voltando ao ponto use vs require.<br><br>O use equivale a &quot;BEGIN { require modulo; import modulo }&quot;, e não pode ser utilizado de forma condicional:
</blockquote><div><br>Justamente MDA... o bloco BEGIN sempre é a 1ª coisa a ser executada, não importa onde esteja... mesmo q seja dentro de um if...<br>por exemplo:<br><br>perl -e &#39;if(0){BEGIN{print &quot;teste$/&quot;}}&#39;
<br><br>por isso q é limitado o uso do use... se fosse permitido fazer &quot;use Modulo if $qq_coisa;&quot; isso não faria o q se quis dizer... (menos ainda o q se disse!) pois equivaleria a &quot;if($qq_coisa){BEGIN{require Modulo; import modulo}}&quot; q pouco se importaria com a condição e da mesma forma &quot;loadaria&quot; no inicio...
<br>&nbsp;</div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">#x<br>if ( $modo == 1 ) {<br>&nbsp;&nbsp; use Modulo1;<br>&nbsp;} else {<br>&nbsp;&nbsp; use ModuloX;<br>
}<br><br>Enquanto que o require permite esta opção.<br><br>#x<br>
if ( $modo == 1 ) {<br>
&nbsp;&nbsp; require Modulo1;<br>
&nbsp;} else {<br>
&nbsp;&nbsp; require ModuloX;<br>
}<br>
<br># <a href="http://Modulo1.pm" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Modulo1.pm</a><br>package Modulo1;<br>print &quot;Begin Modulo1\n&quot;;<br>1;<br><br>
# ModuloX.pm<br>
package Modulo1;<br>
print &quot;Begin ModuloX\n&quot;;<br>X;</blockquote><div><br>Justo... <br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Crie os arquivos e faça o teste ;)
<br><br><a href="http://perldoc.perl.org/functions/require.html" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://perldoc.perl.org/functions/require.html</a><br><a href="http://perldoc.perl.org/functions/use.html" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

http://perldoc.perl.org/functions/use.html</a><br><br>PS: Conhecimento estraído de leitura de discussões na Cascavel-PM. Como diria meu chefe... soluções em busca de problemas ;)<br>
<br><br>Sds,<br>Marco Antonio<div><span class="e" id="q_11655deb5f2d4529_1"><br></span></div></blockquote></div><br>No meu trabalho (q é um sistema enorme!) agente usa tanto o &quot;use&quot; qto o &quot;require&quot;... é tão bom ter a liberdade de poder escolher como eu quero fazer as coisas...
<br clear="all"><br>-- <br>[]&#39;s Fernando