[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