【问题标题】:How do I add multiple PODs to the end of my perl script?如何将多个 POD 添加到我的 perl 脚本的末尾?
【发布时间】:2011-01-20 05:12:41
【问题描述】:

我正在研究 perl 文档中关于如何在脚本中使用 Getopt::Long 的教程。在那里,它展示了如何使用Pod::Usage 添加文档,而不必将所有内容都键入子例程或其他内容。无论如何,在示例中他们有这个;

    GetOptions('help|?' => \$help, 'b|backup' => \&backup, d|discover => \&discover, man => \$man) or pod2usage(2);
pod2usage(1) if $help;
pod2usage(-exitstatus => 0, -verbose => 2) if $man;

我添加了一些我自己的论点。

我知道如何参考文档的第一部分。但是我如何参考pod2usage(2)所说的第二部分呢?

当我在第 1 部分末尾的 =cut 之后添加一个新部分时,当我尝试让它显示它时,我会遇到一个命令提示符,就像它进出然后没有显示该部分一样。我做错了吗?

【问题讨论】:

    标签: perl documentation perl-pod


    【解决方案1】:

    您不需要“多个 POD”。

    pod2usage,当被称为pod2usage(1)时,这里的1代表退出状态,详细级别隐含为1,所以它将打印SYNOPSIS,以及标题为OPTIONS的任何部分, ARGUMENTSOPTIONS AND ARGUMENTS

    当以pod2usage(-exitval => 0, -verbose => 2) 调用时,它将在您的文本寻呼机中打印整个POD(与perldoc yourscriptname.pl 的操作相同)并以0 退出。 (注意是-exitval 而不是-exitstatus)。

    它在Pod::Usage 文档here 中有详细描述,并且按照描述的方式工作。

    您可能会发现pod2usage 的可选-sections 参数对您所描述的内容非常有用,与-verbose => 1 结合使用,可以选择您希望显示的内容。

    【讨论】:

    • 好的,我更慢地查看了 Pod::Usage 文档,看到了正在讨论的部分。我似乎无法工作的唯一部分是 GetOptions..... 或 pod2usage(2);它只是转储到一个提示符,它没有像它应该显示的那样显示菜单。只是为了看到我编辑了我的一个命令标志以执行与 pod2usage(2) 相同的操作,并且效果很好。
    • 在您的示例中,没有一个选项是必需的选项,因此,GetOptions 返回 true(嗯,1),因此永远不会执行 or pod2usage(2); 子句。与pod2usage无关。
    • 但是没有 args = 0 吗?哪个会触发 or 子句。
    • 不,GetOptions“如果命令行可以成功处理,将返回一个真值。否则,它将向STDERR写入错误消息,并返回一个错误结果。” (来自 Getopt::Long 文档)。由于没有必需的参数,因此“处理成功”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    相关资源
    最近更新 更多