Perl: utiliza todos los módulos del subdirectorio especificado y resuelve sus dependencias automáticamente
module automation (1)
No quiero escribir palabras clave de
use
en los módulos que dependen de otros módulos.
Luego, escriba BEGIN
, require
e import
palabras clave en su lugar.
En serio, no hay una buena forma de que esto funcione. Simplemente use el use
en cada módulo para que pueda cargar las cosas que necesita.
También me gustaría preguntar si este uso cruzado de módulos y llamar a sus subrutinas se considera una buena práctica en la programación perl.
Sí. La modularización se considera una buena práctica en toda la programación.
Tengo dos módulos:
./My/Module1
./My/Module2
Module1
está utilizando subrutinas del Module2
. Entonces en mi script escribí lo siguiente:
use My::Module1
use My::Module2
Pero esto no funciona y Perl se quejó de que las subrutinas que se usan desde Module2
por Module1
no existen. Así que agregué la siguiente línea al Module1
:
use My::Module2
Finalmente esto funcionó como se esperaba.
Me pregunto si existe alguna solución que incluya todos los módulos del árbol de subdirectorios especificado y resuelva las dependencias automáticamente. No quiero escribir palabras clave de use
en los módulos que dependen de otros módulos. Se intentaron los siguientes comandos pero no funcionó (ya sea por errores de sintaxis o porque usó módulos incorrectos):
use My::;
use My::*;
use My;
También me gustaría preguntar si este uso cruzado de módulos y llamar a sus subrutinas se considera una buena práctica en la programación perl.
PD: @INC
contiene el directorio actual para que los módulos de carga funcionen.
PPS: Módulos utilizados Exporter