Io uso use lib "./DIR"
per afferrare una libreria da una cartella altrove. Tuttavia, non sembra funzionare sul mio server, ma funziona bene sul mio desktop locale. Alcuni motivi particolari?Come funziona il lib pragma di Perl?
E un'altra domanda, non use lib
ottenere propagato all'interno di diversi moduli?
Due situazioni: Suppongo di creare una classe base che richiede alcune librerie, ma so che è necessario estenderla e la classe estesa dovrà utilizzare un'altra libreria. Posso inserire il comando use lib
nella classe base? o dovrò metterlo in ogni classe che si estende?
Infine, posso avere solo un use package
dove il pacchetto contiene un po 'di lib di uso, propagherà le istruzioni lib di uso al mio modulo corrente? < - Non penso, ma chiedendo comunque
ho usato getcwd di capire dove "" è. Sei curioso di sapere se è possibile capire dove si trova lo script perl? Non ha funzionato quando ho provato a usare FindBin perché lib e bin non sono co-locati. Quindi ecco un esempio di ciò che sto cercando di fare. Eseguo lo script perl da say folder1. Ha use lib "/ abs/path/topack /"; usare il pacchetto. Nel pacchetto uso lib './FOLDER2'; supponendo che il cwd sarebbe lo stesso. Da "." punta a Cartella1 e non al percorso. È sbagliato. Come faccio a non utilizzare il percorso assoluto nel pacchetto, ma posso anche usarlo? È possibile? – Tyug
@Tug: è possibile determinare da dove è stato caricato un modulo controllando '% INC'. Vedi http://stackoverflow.com/questions/1463414 per una domanda simile che dovrebbe farti puntare nella giusta direzione. –
Grazie mille! – Tyug