8

我想为我自己的自定义命令创建一个 POD,并使用 pod2usage() 函数显示它的语法。

谁能给我一个简单的例子吗?

问候, 阿南丹

4

2 回答 2

17

我使用Getopt::LongPod::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) 也是复数。

于 2009-08-05T11:02:12.620 回答
4

perlpod 手册页中有很多很好的示例。Pod2usage 在这里解释。

于 2009-08-05T09:35:52.063 回答