如何创建POD并在perl中使用pod2usage?

时间:2009-08-05 09:25:48

标签: perl pod

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

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

此致 阿南丹

2 个答案:

答案 0 :(得分:15)

我倾向于使用Getopt::LongPod::Usage一起执行此操作。 (在阅读PerlMonks网站上的教程后我养成了这个习惯,所以here's the link to that也是如此。)看起来像这样的例子:

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。这里是a good link,描述了POD本身的基础知识。

修改:为了回应评论中的OP问题,以下是传递适当选项时如何打印NAME部分的方法。首先,在GetOptions中的选项哈希中添加另一个选项。我们在这里使用'name' => \$opt_name。然后添加:

pod2usage(-verbose => 99, -sections => "NAME") if $opt_name;

详细级别99很神奇:它允许您选择仅打印一个或多个部分。有关详细信息,请参阅Pod::Usage下的-sections文档。请注意-sections(名称)是复数,即使您只需要一个

答案 1 :(得分:4)

perlpod联机帮助页中有很多好的示例。 Pod2usage解释为here