Come riportato da "perldoc -f uso":
Esso è esattamente equivalente a
BEGIN { require Module; import Module LIST; }
eccetto che il modulo deve essere un bareword.
Mettere che un altro modo, "l'uso" è equivalente a:
- in esecuzione al momento della compilazione,
- convertire il nome del pacchetto da un nome di file,
require
-ing che il nome del file e
import
-ing quel pacchetto.
Così, invece di chiamare l'uso, è possibile chiamare richiedere e importare all'interno di un blocco BEGIN:
BEGIN {
require '../EPMS.pm';
EPMS->import();
}
E, naturalmente, se il modulo non effettivamente fare qualsiasi simbolo di esportazione o altra inizializzazione quando si chiama import, è possibile lasciare questa riga fuori:
BEGIN {
require '../EPMS.pm';
}
fonte
2008-12-20 22:57:23
Di solito si vuole fare un inshift in modo che la directory sia il fronte della lista. In questo modo Perl non deve cercare tra tutti @INC per trovarlo. :) –
Sì, è vero, e quindi la conversione BEGIN {push} => 'use lib' non è identica. Ma volevo mostrare il minimo cambiamento utilizzabile dalla domanda per farlo funzionare. Grazie per aver notato :) – ephemient
C'è anche PERL5LIB e l'opzione -I, come cita Brian. – Axeman