3

我有两个模块:

./My/Module1
./My/Module2

Module1正在使用Module2. 所以在我的脚本中我输入了以下内容:

use My::Module1
use My::Module2

但这不起作用,并且 perl 抱怨不存在从Module2by使用的子例程。Module1所以我添加了以下行Module1

use My::Module2

最后,这按预期工作。

我想知道是否有一些解决方案将包含指定子目录树中的所有模块并自动解决依赖关系。我不想use在依赖于其他模块的模块中键入关键字。尝试了以下命令,但没有成功(由于语法错误或使用了错误的模块):

use My::;
use My::*;
use My;

另外我想问一下,这种交叉使用模块并调用它的子例程是否被认为是 perl 编程中的一种好习惯?

PS:@INC包含当前目录,因此加载模块正在工作。

PPS:使用的模块Exporter

4

1 回答 1

1

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

然后键入BEGIN, require, 和import关键字?

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

另外我想问一下,这种交叉使用模块并调用它的子例程是否被认为是 perl 编程中的一种好习惯?

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

于 2014-07-23T12:36:14.207 回答