Modificar @INC en Tiempo de Compilación

Si se quiere garantizar que el camino en cuestión esta disponible antes de que se ejecute ninguna sentencia se puede usar una de las opciones 1 2 o 4. También podemos hacerlo rodeando la opción 3 de un BEGIN :

BEGIN {
  unshift @INC, "home/lhp/perl/src";
}

Cuando Perl esta en la fase de compilación y encuentra un bloque con nombre BEGIN pasa a ejecutarlo y continúa con la compilación. Puede existir mas de un bloque BEGIN en un programa, en cuyo caso se van ejecutando durante la fase de compilacion según se van viendo.

Ejercicio 5.5.1   Explique la siguiente salida:
casiano@beowulf:~/src/perl$ perl -de 0
DB<1> require Data::Dumper

DB<2> require "Data::Dumper"
Can't locate Data::Dumper in @INC (@INC contains: /etc/perl
/usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8
/usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8
/usr/share/perl/5.8 /usr/local/lib/site_perl .) at (eval
18)[/usr/share/perl/5.8/perl5db.pl:628] line 2.
Observe que el primer require no produce ninguna queja, el segundo si. Consulte perldoc -f require para entender este detalle.

Casiano Rodríguez León
Licencia de Creative Commons
Principios de Programación Imperativa, Funcional y Orientada a Objetos Una Introducción en Perl/Una Introducción a Perl
por Casiano Rodríguez León is licensed under a Creative Commons Reconocimiento 3.0 Unported License.

Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=43.
2012-06-19