next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: Búsqueda de librerías y Sup: Módulos Ant: Ejercicio: Subrutinas Locales Err: Si hallas una errata ...

Paquetes y ficheros

En principio no hay relación directa entre paquetes y ficheros: un mismo paquete puede existir en diversos ficheros y diversos paquetes pueden ser declarados en un único fichero.

Como un paquete generalmente se hace para ser reutilizado muchas veces, se guarda en un archivo libreria de extension .pl (por ejemplo cgilib.pl) o en un archivo módulo con el sufijo .pm.

Los programas que quieren usar pueden invocar el fichero con require

require "cgilib.pl";

la función require lee el archivo cgilib.pl si este no ha sido leido antes. El archivo no tiene que necesariamente estar asociado con un package pero si debe devolver verdadero, por tanto, es necesario que la última sentencia ejecutada sea:

return 1;

Si se omiten las comillas y el sufijo, se asume una extensión .pm.

Mientras que require carga el paquete en tiempo de ejecución, comprobando que no esta ya cargado, use carga los módulos en tiempo de compilación. El siguiente código no funciona:

$paquete = "MiPaquete"; # se ejecuta en tiempo de ejecución
use $paquete; # se ejecuta en tiempo de compilación
Además use requiere que el sufijo del fichero sea .pm


next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: Búsqueda de librerías y Sup: Módulos Ant: Ejercicio: Subrutinas Locales Err: Si hallas una errata ...
Casiano Rodríguez León
2006-02-21