我有两个模块:
./My/Module1
./My/Module2
Module1
正在使用Module2
中的子程序。所以在我的脚本中输入以下内容:
use My::Module1
use My::Module2
但是这没有用,perl抱怨从Module2
Module1
使用的子程序不存在。所以我在Module1
添加了以下行:
use My::Module2
最后这个工作按预期进行。
我想知道是否有一些解决方案将包含来自指定子目录树的所有模块并自动解决依赖关系。我不想在依赖于其他模块的模块中键入use
关键字。尝试了以下命令,但它没有奏效(无论是语法错误还是使用了错误的模块):
use My::;
use My::*;
use My;
另外我会问这个交叉使用模块和调用它的子程序是否被认为是perl编程中的一个好习惯?
PS:@INC
包含当前目录,因此加载模块正在运行。
PPS:使用的模块Exporter
答案 0 :(得分:1)
我不想在依赖于其他模块的模块中键入
use
关键字。
然后输入BEGIN
,require
和import
关键字?
说真的,这没有好办法。只需在每个模块中使用use
,以便它可以加载所需的东西。
另外我会问这个交叉使用模块和调用它的子程序是否被认为是perl编程中的一个好习惯?
是。模块化被认为是所有编程中的良好实践。