[Cascavel-pm] importar funções
Adriano Ferreira
aferreira em shopzilla.com
Quinta Setembro 18 06:14:16 PDT 2008
On Thu, Sep 18, 2008 at 10:03 AM, Gabriel Vieira
<gabriel.vieira em gmail.com> wrote:
> Sim!!!
>
> perldoc -f require
> perldoc -f do
> perldoc -f use
Para completar, use um módulo de importação de símbolos. Um dos mais
conhecidos é o "Exporter", não porque é o melhor, mas porque está
junto com a distribuição oficial do Perl.
perldoc Exporter
http://perldoc.perl.org/Exporter.html
http://search.cpan.org/perldoc?Exporter
Na seção "SEE ALSO", você tem referências para outras alternativas.
Com Exporter, para fazer o que você quer, provavelmente isto será suficiente:
# MyLib.pm (as funções a serem compartilhados em um Perl Module)
package MyLib;
our @EXPORT_OK = qw(
fun1 fun2 fun3
);
use base qw( Exporter );
sub fun1 { ... }
sub fun2 { ... }
# nos scripts onde você precisa das funções
use MyLib qw( fun1 fun3 ); # as funções que você vai usar
Atenção: se você tem várias e várias funções, talvez devesse
considerar uma outra abordagem que evita a poluição do namespace, como
* usar as funções como métodos estáticos de MyLib ( MyLib->fun1 --
necessita uma modificação no código para descartar o primeiro
argumento )
* mudar para um projeto OO de verdade (se isto faz sentido, por
examplo, há estado para ser guardado em um objeto correspondente à
funcionalidade a ser compartilhada) ( seria usado como $lib =
MyLib->new(); $lib->fun1 -- necessita mais modificações ainda )
Leia a documentação do Exporter. Tem muitas dicas lá de estilo,
utilização e como não se arrepender mais tarde por causa de problemas
de manutenção, etc.
Sorte,
Adriano.
> 2008/9/18 Elvio Barbalho <elvio.barbalho em gmail.com>:
>> Senhores bom dia, tenho varias funções que uso normalmente
>> em vários scripts, teria como coloca-las em um único arquivo e importa-las
>> nos scripts???? caso afirmativo como eu posso fazer isso??????
>> _______________________________________________
>> Cascavel-pm mailing list
>> Cascavel-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/cascavel-pm
>>
>
>
>
> --
> Gabriel Vieira
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>
Mais detalhes sobre a lista de discussão Cascavel-pm