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

eden edencardim em gmail.com
Domingo Novembro 18 19:19:58 PST 2007


On Nov 19, 2007 12:05 AM, Marco A P D'Andrade <mdacwb em gmail.com> wrote:
> 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.
>
> 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.
>
> Mas... em web para um projeto grande, não será utilizado CGI, será mod_perl,
> ou fastcgi.
>
> 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:
>
> #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;
>
>
> 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 ;)

E só pra não ficar de fora também... ;) Você sempre pode usar coisas
como AutoLoader:
http://search.cpan.org/~smueller/AutoLoader-5.63/lib/AutoLoader.pm

Disclaimer: nunca usei esse treco em produção, experimente por sua
conta e risco ;)

-- 
edenc.vox.com


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