[SP-pm] sobre arquivos .pm
breno
breno at rio.pm.org
Sat May 15 14:08:36 PDT 2010
Oi Lucas,
2010/5/15 Lucas Moraes <mineiro em live.be>:
> Oi gente, estou com dificuldades de encotrar os arquivos .pm, eu coloquei
> eles em todos diretorios e o per naum localiza, de ess erro:
>
> Can't locate teste.pm in @INC (@INC contains:
> /usr/local/lib/perl5/5.8.8/i686-linux /usr/local/lib/perl5/5.8.8
> /usr/local/lib/perl5/site_perl/5.8.8/i686-linux
> /usr/local/lib/perl5/site_perl/5.8.8 /usr/local/lib/perl5/site_perl .) at
> teste.pl line 7.
> BEGIN failed--compilation aborted at teste.pl line 7.
>
> porque esta acontecendo esse erro?
>
Como você está chamando o programa teste.pl? A partir de que
diretório? O erro acontece pq seu arquivo "teste.pm" não está no
diretório de onde você chamou o "teste.pl" (que não necessariamente é
o diretório em que o "teste.pl" está), ou em qualquer dos diretórios
mencionados.
> o require, qual sua diferenca com use? require perdi desempenho?
>
Vai no terminal e digita isso:
perldoc -q require
ele vai te apontar exatamente para a pergunta no perlfaq: "What’s the
difference between require and use?"
A resposta rápida (e incompleta) é que o "use Módulo" carrega o módulo
"Modulo.pm" pra vc durante a compilação do programa, e chama a função
import (se existir) para importar funções e outros símbolos do módulo
para quem o usou. O "require", por outro lado, carrega o módulo apenas
em tempo de execução e não chama o import().
Em código, dizer:
use Modulo;
é a mesma coisa que dizer:
BEGIN { require Modulo; Modulo->import }
Em geral, você quer "use". O "require" costuma ser apenas em caso de
trabalhar com um módulo muito pesado de carregar e que é raramente
utilizado. Nesse caso, carregá-lo apenas quando necessário pode dar ao
usuário uma sensação de maior velocidade ao iniciar o programa. Em
(quase) todos os outros casos, "use" será mais adequado e eficiente.
[]s
-b
More information about the SaoPaulo-pm
mailing list