我想为自己的自定义命令创建一个POD,并使用pod2usage()函数显示该语法。
有人能给我一个简单的例子吗?
此致 阿南丹
答案 0 :(得分:15)
我倾向于使用Getopt::Long和Pod::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)