Introducción
Muchas veces nos encontramos con que queremos usar un módulo pero el servidor donde tenemos el sitio no lo tiene instalado y es imposible hacerlo, pero se puede dar una vuelta a este problema y es lo que vamos a ver en este tutorial.
Antes que nada hay que recordar que la mayoría de los módulos los podemos encontrar en: http://search.cpan.org/
¿Cómo busca los módulos perl?
Para poder llegar a nuestro objetivo primero debemos de comprender como busca los módulos perl.
Cuando queremos usar un módulo la sintaxis que usamos es:
use Modulo;
Con esta directiva le estamos diciendo a perl que queremos usar un módulo que se llama "Modulo", entonces lo que va a hacer perl es leer varios directorios, estos directorios se encuentran en un array que se llama @INC y son los directorios que tiene perl reconocidos como librerías.
Es decir perl en este array tiene varias direcciones a directorios donde va a buscar los módulos, entonces cuando busca un módulo va directorio por directorio hasta encontrarlo, de lo contrario regresa un error.
Hay veces que nuestra sintaxis al llamar un módulo es:
use Modulo::ModuloChico;
Al hacer esto le estamos diciendo que queremos que busque el "ModuloChico" dentro de un directorio llamado "Modulo" que debe de encontrarse en algun directorio de @INC.
Como ves los dos puntos sería similares a los "/" en windows y en UNIX, así que si tuvieras una llamada a un módulo de esta manera:
use Modulo::ModuloChico::Modulito;
Lo que interpretaría perl sería, busca el módulo "Modulito" en el directorio "ModuloChico" que esta en el directorio "Modulo" que debe de encontrarse en algun directorio de @INC.
Haciendo nuestra librería
Nuestro primer paso es crear un directorio al que vamos a llamar lib en donde vamos a poner el módulo que queremos usar.
Ya que tenemos nuestro directorio hecho junto con los directorios de los módulos que vayamos a usar (aunque no siempre necesitan un directorio aparte: ver seccion anterior).
Ahora antes de hacer la llamada de nuestro módulo vamos a incluir una linea que le va indicar a perl que queremos que meta un nuevo directorio en al array @INC:
use lib('miliberia/lib');
Lo que le estamos diciendo a perl con esta linea es que queremos que busque módulos en el directorio lib que se encuentra en milibreria.
Entonces si ponemos un módulo que se llame "MiModulo.pm" en ese directorio lo podríamos usar sin problema al poner:
use lib('miliberia/lib');
use MiModulo;
Con esto si no encuentra perl en las librerías que vienen con la distribución va a buscar el módulo "MiModulo" en el directorio "milibreria/lib".
Notas Finales
Ya vimos como podemos usar módulos sin la necesidad de instalarlos pero hay algo que tienes que tener muy en cuenta:
Hay módulos que al ser instalador perl los compila, como por ejemplo (CGI,DBI,Image::Magick, etc) por lo que debes de buscar las versiones compiladas de estos módulos.
Otra cosa que siempre deben de tener en cuenta es tener cuidado cuando pongan la ruta a su directorio de módulos, funcionan directorios relativos y absolutos. Mi recomendacion: siempre usar rutas absolutas.
Ojala les fucione el tutorial y disfruten!