Perl - 使用指定子目录中的所有模块并自动解决它的依赖关系

时间:2014-07-23 10:54:00

标签: perl module automation exporter

我有两个模块:

./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

1 个答案:

答案 0 :(得分:1)

  

我不想在依赖于其他模块的模块中键入use关键字。

然后输入BEGINrequireimport关键字?

说真的,这没有好办法。只需在每个模块中使用use,以便它可以加载所需的东西。

  

另外我会问这个交叉使用模块和调用它的子程序是否被认为是perl编程中的一个好习惯?

是。模块化被认为是所有编程中的良好实践。