Hola:
Deja te pongo algunos ejemplos para hacer más claros las variables de EXPORT que te explicó explorer.
Dígamos que en tu módulo tengas la variable @export así:
- Código: Seleccionar todo
@EXPORT = qw( mi_funcion );
Entonces en tu script de Perl puedes hacer lo siguiente:
- Código: Seleccionar todo
use MiModulo; #Cargas tu módulo
mi_funcion(); #Llamas a la función en el módulo
Entonces la variable
@EXPORT exporta de manera automática lo que le pongas.
Ahora, con el @EXPORT_OK:
- Código: Seleccionar todo
@EXPORT_OK = qw( otra_funcion );
Entonces en tu script harías algo así:
- Código: Seleccionar todo
use MiModulo qw( otra_funcion );
otra_funcion();
Con el
@EXPORT_OK especificamos todo aquello que está permitido exportar, pero del lado del importador (el script) lo debe de poner de manera explícita.
Ahora, los
%EXPORT_TAGS te permiten hacer listas de funciones de exportación, así podrías, por ejemplo, cargar un módulo con las puras funciones más simples, o con todo:
- Código: Seleccionar todo
%EXPORT_TAGS = (
DEFAULT => [qw(funcionA funcion B)],
Simple => [qw(funcionA)]
);
Entonces en tu script podrías hacer algo así al cargar el módulo:
- Código: Seleccionar todo
use MiModulo qw(:DEFAULT);
use MiModulo qw(:Simple);
Dependiendo de la lista que decidas cargar son las funciones que tendrás disponibles. Ahora, puedes optar por cargar varias listas a la vez:
- Código: Seleccionar todo
use MiModulo qw(:DEFAULT :Simple :Otro);
En el siguiente link puedes encontrar información más detallada de todo lo que aquí pongo, así como más opciones:
http://perldoc.perl.org/Exporter.html#How-to-ExportSaludos