Los módulos pueden estar en varios sitios. De hecho, pueden estar en cualquier sitio.
La verdadera cuestión es que perl pueda encontrarlos.
perl (el intérprete de lenguaje Perl) cuando necesita cargar un módulo, lo busca por las rutas indicadas por la variable especial @INC:
Using text Syntax Highlighting
explorer@casa:~> perl -E 'say join "\n", @INC'
/usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi
/usr/lib/perl5/site_perl/5.12.3
/usr/lib/perl5/vendor_perl/5.12.3/i586-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.12.3
/usr/lib/perl5/5.12.3/i586-linux-thread-multi
/usr/lib/perl5/5.12.3
.
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Si no lo encuentra en ninguno de ellos, mirará también por las rutas indicadas en la variable de entorno
$PERL5LIB.
Observa varias cosas, de las rutas anteriores:
- Las rutas con 'vendor' se refiere a donde se instalan los módulos que gestiona el sistema de control de software de nuestro sistema operativo (OpenSuse Linux, en mi caso)
- Las rutas con 'site' es donde se instalan los módulos que metemos "a mano", con los comandos cpan y cpanp
- Las rutas simples (/usr/lib/perl5) se refieren a la distribución básica, cuando se instaló Perl en el sistema
- La última ruta es '.', que quiere decir que, en última instancia, el módulo debe buscarse en el mismo directorio en donde se encuentre el programa (así que podemos poner los módulos alienígenas en nuestro propio directorio, sin molestar a nadie más).
Además, estas rutas se pueden ampliar, con el
pragma use lib 'ruta'; .
Para comprobar que un módulo está bien instalado, ejecutamos el intérprete perl con la opción
-M:
perl -Mmódulo -e 1Si no salen errores, es que <módulo> está bien instalado. Mejor dicho: perl lo encuentra.