【问题标题】:Should you check the return code from Getopt::Long::GetOptions?您是否应该检查 Getopt::Long::GetOptions 的返回码?
【发布时间】:2012-07-17 16:07:52
【问题描述】:

我刚刚在代码审查中第一次被要求检查调用 Getopt::Long Perl 模块的 GetOptions() 函数的返回码。

我不记得曾经见过这样的GetOptions() 函数测试。

那么人们一般不检查这个函数的返回码有什么具体原因吗?

【问题讨论】:

    标签: perl getopt getopt-long


    【解决方案1】:

    人们不检查GetOptions 函数的返回值的一个原因是他们希望在不使用Getopt::Long 的情况下处理未指定的选项(通过在调用GetOptions 之后直接解析@ARGV)。或者,也许他们只是想忽略未指定的选项。或者,他们可能不知道GetOptions 函数可能会失败。

    我总是检查返回值,因为我喜欢在命令行中发现拼写错误。检查的标准方法是使用Pod::Usage Core 模块(参见 POD 示例代码)。另见:The Dynamic Duo --or-- Holy Getopt::Long, Pod::UsageMan!

    【讨论】:

    • 如果我想让程序die在解析命令行参数时出错,我通常会检查GetOptions的返回值。喜欢die unless GetOptions(...)。如果不是 pass_trough 仍然是捕获 @ARGV 中其余参数的选项。
    • 为非常有用的答案欢呼@toolic。我没有想到拼写错误的选项。非常感谢这篇文章的链接,它提供了关于为什么我应该向我的 Perl 添加更多 pod 的更多信息!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 2020-02-05
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    相关资源
    最近更新 更多