[Rio-pm] Fwd: [SP-pm] Compilação

Fernando Oliveira fernandocorrea em gmail.com
Domingo Novembro 18 21:22:58 PST 2007


Em 19/11/07, Marco A P D'Andrade <mdacwb em gmail.com> escreveu:
>
> Só pra não ficar de fora ...
>
> 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.


Exatamente! isso e o fato do use já importar funções exportadas...


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.
>
> 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.


O require tb valida o código, mas no momento em q vc o está usando, ou seja,
vc pode "distribuir a carga" do sistema...


Mas... em web para um projeto grande, não será utilizado CGI, será mod_perl,
> ou fastcgi.


CGI?! quem se importa com CGI?! :)

Bem...  voltando ao ponto use vs require.
>
> O use equivale a "BEGIN { require modulo; import modulo }", e não pode ser
> utilizado de forma condicional:


Justamente MDA... o bloco BEGIN sempre é a 1ª coisa a ser executada, não
importa onde esteja... mesmo q seja dentro de um if...
por exemplo:

perl -e 'if(0){BEGIN{print "teste$/"}}'

por isso q é limitado o uso do use... se fosse permitido fazer "use Modulo
if $qq_coisa;" isso não faria o q se quis dizer... (menos ainda o q se
disse!) pois equivaleria a "if($qq_coisa){BEGIN{require Modulo; import
modulo}}" q pouco se importaria com a condição e da mesma forma "loadaria"
no inicio...


#x
> if ( $modo == 1 ) {
>    use Modulo1;
>  } else {
>    use ModuloX;
> }
>
> Enquanto que o require permite esta opção.
>
> #x
> if ( $modo == 1 ) {
>    require Modulo1;
>  } else {
>    require ModuloX;
> }
>
> # Modulo1.pm
> package Modulo1;
> print "Begin Modulo1\n";
> 1;
>
> # ModuloX.pm
> package Modulo1;
> print "Begin ModuloX\n";
> X;


Justo...

Crie os arquivos e faça o teste ;)
>
> http://perldoc.perl.org/functions/require.html
> http://perldoc.perl.org/functions/use.html
>
> PS: Conhecimento estraído de leitura de discussões na Cascavel-PM. Como
> diria meu chefe... soluções em busca de problemas ;)
>
>
> Sds,
> Marco Antonio
>

No meu trabalho (q é um sistema enorme!) agente usa tanto o "use" qto o
"require"... é tão bom ter a liberdade de poder escolher como eu quero fazer
as coisas...

-- 
[]'s Fernando
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/rio-pm/attachments/20071119/c515cc7a/attachment.html 


Mais detalhes sobre a lista de discussão Rio-pm