首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >开发一套Perl模块的技巧

开发一套Perl模块的技巧
EN

Stack Overflow用户
提问于 2012-03-15 00:43:33
回答 2查看 179关注 0票数 2

我需要为内部工作开发一组Perl模块。我希望它们都形成在一个家族或模块的套件中,而不是单独的。

例如,套房应该是这样的:

代码语言:javascript
复制
MySuite::App::Module1
            ::Module2
MySuite::Env
MySuite::Utils::Logger
              ::Util2

我读过perlmodstyle风格新模式等,但它们似乎都集中在开发单个模块的技巧上。在开发/分发这样的套件时,有哪些技巧/最佳实践?(套件中的各个模块可以由不同的开发人员编写)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-15 09:02:45

它与单模块分发没有太大的不同。另外两项既定公约是:

  1. 将模块分层放置在lib目录中。 MySuite::App::Module1 1→lib/MySuite/App/Module1.pm MySuite::App:Module1 2→lib/MySuite/App/Module2.pm MySuite::Env→lib/MySuite/Env.pm MySuite::Utils:Logger→lib/MySuite/Utils/Logger.pm MySuite::Utils:Utils:Util2→lib/MySuite/Utils/Utils2.pm
  2. 选择一个成为发行版名称的主模块。您的示例看起来应该有一个附加的lib/MySuite.pm,其中包含package语句MySuite和少量代码和一些入口点文档。在module_name文件中将此模块指定为Build.PL。

有关一般包装的更多信息,请参见:

有关您的进展的反馈/评论可从以下网站获得:

  • #toolchain on MagNET
  • 模块-authors@perl.org邮件列表
  • http://prepan.org
票数 2
EN

Stack Overflow用户

发布于 2012-03-29 23:54:31

使用perl附带的h2xs命令行工具。它将创建一个非常有用的perl模块框架(它特别适合CPAN上的发行版)。输入shell:

$ h2xs -X MySuite

这将创建一个单独的发行版,并将特定的模块骨架放在lib中。研究它,并根据需要在库下面创建其他.pm文件。研究源代码中的"package“行并匹配文件路径;您应该了解基本概念。例如:

代码语言:javascript
复制
  $ cd MySuite
  $ touch -p lib/MySuite/App/Module.pm
  $ touch -p lib/MySuite/Env.pm
  $ ...

这将是向发行版添加更多模块的基本步骤。每当您要添加另一个.pm文件或更改文件名时,请发出

代码语言:javascript
复制
  $ perl Makefile.PL  (only first time or "Makefile" not present)
  $ make manifest

同步清单文件;它将添加模块发行版中的所有文件。这允许您使用

代码语言:javascript
复制
  $ make dist

为您创建MySuite-0.1.tar.gz存档。最后,您可以使用以下方法测试您的套件:

代码语言:javascript
复制
  $ make test

总之,h2xs对于模块作者来说非常方便,并且承担了准备基本模块分发基础结构的责任。它创建占位符来填写特定的文档,并创建一个Makefile来管理您的发行版--当它变得更大时,您会很欣赏它。将您的模块发送到CPAN,您将很高兴它将很好地被索引。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9712498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档