POD是Perl中内置的文档格式,历史上随着语言扩展以支持大型项目而出现。它的基本特点是文档总是直接存储在源代码中,这有助于不失去实现和描述之间的联系(目前原则上与在Perl中开发复杂模块是不可分割的)。
问题:程序员常常不知道或忽视自动生成文档的系统,尽管Perl生态系统(CPAN)明显要求所有模块都必须具备。
解决方案 — 对每个文件、类和函数使用POD。为了自动化,存在perldoc、pod2man、Pod::Coverage等工具。明确的规则是:如果您的模块没有POD — 它不会被纳入企业环境或不会出现在CPAN上。
代码示例:
=head1 NAME My::Module - POD使用示例 =head1 SYNOPSIS use My::Module; ... =head1 DESCRIPTION 此功能执行... =cut
关键特点:
POD可以位于子程序内,而不仅仅是在文件的开头吗?
答案:可以,POD规格允许在任何关键结构之后插入:函数、方法声明之后,甚至在块内部。
如果在POD块内编写代码会发生什么?
答案:=pod(或其他标题)和=cut之间的所有内容都会被解释器忽略。代码不会被执行!这是一个常见的错误。
如何在POD中记录私有函数?
答案:通常会添加INTERNALS或PRIVATE FUNCTIONS部分,或者不将此类文档包含在SYNOPSIS中。不推荐完全隐藏文档,尤其是当库是公开的情况下。
模块没有提供文档。新开发人员不得不阅读源代码,了解函数的魔法参数。
优点:
缺点:
所有代码都有POD,使用示例在SYNOPSIS部分中提供,每个函数都有描述,并指出了限制。
优点:
缺点: