我知道perl中的循环模块依赖关系,这是一个非常糟糕的主意,例如:
package ModuleA;
use ModuleB;
package ModuleB;
use ModuleA;
我想问一下以下模型是否安全,是否遵循一些最佳实践规则:
package main;
use ModuleA;
use ModuleB;
package ModuleA;
use ModuleB;
use ModuleC;
package ModuleB;
use ModuleC;
另外我想问一下use
-ing模块的顺序是否有影响?例如,如果
package main;
use ModuleA;
use ModuleB;
是相同的
package main;
use ModuleB;
use ModuleA;
而如果
package ModuleA;
use ModuleB;
use ModuleC;
是相同的
package ModuleA;
use ModuleC;
use ModuleB;
等等。
编辑:请注意,ModuleA显式加载ModuleC(并且不依赖于ModuleB它将加载ModuleC),因为ModuleA使用ModuleC中的函数。这是好的设计方法吗?
最佳实践很容易:每个文件,程序或模块都应指定其所有依赖项。而已。例如,如果脚本需要模块A和B,而模块A需要模块B,则不要指望脚本已加载的模块B-如果其他脚本需要模块A而又不需要模块B,该怎么办?
基于Good Exporter的模块应该使用,@EXPORT_OK
并且您应该在使用条款中明确列出导入的子例程。它有助于防止名称冲突。
对于仅导出子例程的普通模块,顺序无关紧要。在其他情况下,可能会:考虑
use warnings_;
use diagnostics;
相对
use diagnostics;
use warnings_;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句