Según lo informado por "perldoc uso -f":
Es exactamente equivalente a
BEGIN { require Module; import Module LIST; }
excepto que el módulo debe ser un bareword.
Poniendo eso de otra manera, el "uso" es equivalente a:
- funcionamiento en tiempo de compilación,
- convertir el nombre del paquete a un nombre de archivo,
require
-ing ese nombre de archivo y
import
- ese paquete.
Así, en lugar de llamar a su uso, puede llamar a requerir e importación dentro de un bloque BEGIN:
BEGIN {
require '../EPMS.pm';
EPMS->import();
}
Y, por supuesto, si su módulo en realidad no hace ningún símbolo de exportación u otra inicialización cuando usted llama a la importación, puede dejar esa línea:
BEGIN {
require '../EPMS.pm';
}
Por lo general, quiere hacer un desvío para que su directorio esté en el frente de la lista. De esta forma, Perl no tiene que buscar a través de @INC para encontrarlo. :) –
Sí, así es, por lo que la conversión BEGIN {push} => 'use lib' tampoco es idéntica. Pero quería mostrar el cambio utilizable mínimo de la pregunta para que funcione. Gracias por notar :) – ephemient
También hay PERL5LIB y el interruptor -I, como Brian menciona. – Axeman