[Cascavel-pm] Duvidas sobre Módulos e o uso do Exporter.

Nilson Santos Figueiredo Jr. acid06 em gmail.com
Quarta Dezembro 23 19:03:33 PST 2009


2009/12/23 Giuliani Deon Sanches <giulianisanches em gmail.com>:
> 1) Qual a diferença entre dar um use Imprime; e um use Imprime (); já
> que no final das contas eu vou ter que chamar Imprime::aviso ?

Se você tivesse declarado suas funções dentro de uma array @EXPORT e
não @EXPORT_OK, elas seriam automaticamente exportadas por padrão.
O uso de "use Imprime ()" inibiria estes imports padrão.

Para importar as funções do @EXPORT_OK, você deve explicitamente pedir por elas:

  use Imprime qw/aviso erro/;

Agora você vai poder chamar "aviso()" ao invés de Imprime::aviso().

> Suponto um módulo Imprime2, indentico ao descrito anteriormente porém
> sem o uso do Exporter:

Se você não utilizasse o Exporter, elas não seriam exportadas caso o
usuário requisitasse, conforme descrito acima.

-Nilson Santos F. Jr.


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