我需要组织一组模块。它看起来有点像:
A.pm # Inherits from A_base
A_collection.pm # Collection of a large number of instances of A
A_base.pm
我目前的结构如下:
.
|-- bin
| `-- Main.pl
|-- lib
| |-- A_base
| | `-- A.pm
| `-- A_base.pm
`-- t
这样,当我引用 A.pm 时,它变为...::A_base::A
,表示A_base是父。
将A_collection.pm
放入此结构的合理位置是什么?这种结构是对的吗?
答案 0 :(得分:5)
好吧,A_base::A
只表示来自A_base
的继承权,如果这是您正在使用的惯例。对于任何此类都没有基于perl的要求。
您可能更喜欢以下内容:
A - User typically uses these, inherits A::Base
A::Base - base-class for A
A::Collection - lots of A's
A::Alt - Alternative to "A", inherits A::Base
A::Plugin::X - A plugin that does X
使用perl模块的主要约定AFAIK是顶级名称应该是"主题"。您可能想要浏览,例如Log::Dispatch层次结构,或者MooX下的Moo扩展,也许是MooX::Types。这些都不会在命名中遵循父/子层次结构。