我们考虑使用 Minilla 或 Dist :: Milla 进行perl开发。声明依赖关系是通过cpanfile完成的。我期望找到一个确切的定义什么以及如何宣布。但
perldoc cpanfile: 仅显示主要用法。 “另请参阅”部分没有帮助。
perldoc Module :: CPANfile:与cpanfile相同。
perldoc cpanfile-faq:没有对确切语法或其链接的解释,仅
熟悉的DSL语法
这是一种新的文件类型,但格式和语法并不是全新的。 它可以声明的元数据恰好是“Prereqs”的子集 CPAN Meta Spec。
语法从Module :: Install中借鉴了很多。 Module :: Install是一个 轻松声明模块元数据的好方法,如名称,作者和 依赖。 cpanfile格式只是提取依赖项 到一个单独的文件,这意味着大多数开发人员 熟悉语法。
有人知道在哪里可以找到cpanfile语法/格式的确切描述吗?
答案 0 :(得分:7)
我安装了Module::CPANFile
,perldoc cpanfile
和perldoc cpanfile-faq
可用。
cpanfile
州的POD:
[the] cpanfile specification (this document) is based on Ruby's
Gemfile http://gembundler.com/man/gemfile.5.html specification.
cpanfile
手册页中的链接已损坏。它应该指向:http://bundler.io/v1.3/man/gemfile.5.html
cpanfile
旨在与Module::Install
DSL语法“向后兼容”,并且“可转换为CPAN :: Meta :: Prereqs”并受CPAN::Meta Spec v.2
等启发。
据我了解,cpanfile
有点像“元格式”并且适用于一系列TIMTOWTDI方法(请参阅miyagawa's blog describing cpanfile
),与Module::Install
兼容且主要是自我记录。例如,如果您在包含mymeta-cpanfile
个文件的目录中运行META
,它将为您构建cpanfile
;您可以编写一个脚本来描述CPAN::Meta::Prereqs
的先决条件,然后$file->save('cpanfile');
来编写cpanfile
。
关于Dist::Milla
,在教程中(请参阅Dist::Milla
附带的POD
)miyagawa指出
“如果您决定手动构建[a]新cpanfile
,则格式主要与Module::Install
的要求DSL兼容”。本教程还给出了一个简短的例子。
我认为让miyagawa澄清分发文档中cpanfile
规范/格式的状态和用例是公平的。那个和更多的例子会回答像你这样的问题。他已经大部分时间完成了这方面的工作 - 它不是全部在一个地方。