Yo uso use lib "./DIR"
para tomar una biblioteca de una carpeta en otro lugar. Sin embargo, parece que no funciona en mi servidor, pero funciona bien en mi escritorio local. ¿Alguna razón en particular?¿Cómo funciona Perl's lib pragma?
Y una pregunta más, ¿se propaga use lib
en varios módulos?
Dos situaciones: Digamos que hago una clase base que requiere algunas bibliotecas, pero sé que es necesario ampliarla y la clase extendida deberá usar otra biblioteca. ¿Puedo poner el comando use lib
en la clase base? ¿o tendré que ponerlo en cada clase extendida?
Finalmente, ¿puedo tener un use package
donde el paquete contiene un montón de lib de uso, propagará las instrucciones de uso lib a mi módulo actual? < - No lo creo, pero pregunta de todos modos
Utilicé getcwd para averiguar dónde "." es. Solo curiosidad por saber si es posible averiguar dónde se encuentra el script de Perl. No funcionó cuando traté de usar FindBin porque la lib y el bin no están ubicados conjuntamente. Así que aquí hay un ejemplo de lo que estoy tratando de hacer. Ejecuto el script perl de decir carpeta1. Tiene uso lib "/ abs/path/topack /"; usar paquete En el paquete, uso lib './FOLDER2'; asumiendo que el cwd sería el mismo. Ya que "." apunta a Folder1, y no a la ruta. Está mal. ¿Cómo no uso el camino absoluto en el paquete pero también puedo usarlo? ¿Es posible? – Tyug
@Tyug: puede determinar de dónde se cargó un módulo inspeccionando '% INC'. Consulte http://stackoverflow.com/questions/1463414 para obtener una pregunta similar que debería orientarlo en la dirección correcta. –
¡Muchas gracias! – Tyug