我想为我自己的自定义命令创建一个 POD,并使用 pod2usage() 函数显示它的语法。
谁能给我一个简单的例子吗?
问候, 阿南丹
我使用Getopt::Long和Pod::Usage来做到这一点。(我在阅读 PerlMonks 网站上的教程后养成了这个习惯,所以这里也是该链接的链接。)它看起来像这个例子:
use Getopt::Long;
use Pod::Usage;
my( $opt_help, $opt_man, $opt_full, $opt_admins, $opt_choose, $opt_createdb, );
GetOptions(
'help!' => \$opt_help,
'man!' => \$opt_man,
'full!' => \$opt_full,
'admin|admins!' => \$opt_admins,
'choose|select|c=s' => \$opt_choose,
'createdb!' => \$opt_createdb,
)
or pod2usage( "Try '$0 --help' for more information." );
pod2usage( -verbose => 1 ) if $opt_help;
pod2usage( -verbose => 2 ) if $opt_man;
$opt_man
在该示例中,除和之外的选项$opt_help
与您无关。我刚刚复制了我在这里的一个随机脚本的顶部。
之后,您只需要编写 POD。这是一个很好的链接,描述了 POD 本身的基础知识。
编辑:回答评论中的OP的问题,以下是NAME
通过适当的选项时仅打印该部分的方式。首先,将另一个选项添加到GetOptions
. 让我们'name' => \$opt_name
在这里使用。然后添加这个:
pod2usage(-verbose => 99, -sections => "NAME") if $opt_name;
详细级别 99 很神奇:它允许您选择一个或多个部分来仅打印。有关详细信息,请参阅Pod::Usage
下面的文档。-sections
请注意,即使您只想要一个 section-sections
, (the name) 也是复数。
perlpod 手册页中有很多很好的示例。Pod2usage 在这里解释。