有一个perl模块等同于python的optparse.OptionParser吗?

时间:2013-01-18 16:52:44

标签: perl optional-parameters

我有一个新脚本,我需要用perl编写,以利用我们的perl代码库(不,我无法转换它,不管怎么说)。我们的编码标准规定了Getopt::Long::GetOptions(),但我意识到如果我可以将python的optparse.OptionParser放入其中,我的选项处理将会大大改进和简化。我在python中喜欢的东西:输入验证,格式和必需/可选,以及基于参数配置的自动帮助字符串生成。

任何提示?我知道我可以自己动手,但如果已经完成,我宁愿使用别人的工作。

3 个答案:

答案 0 :(得分:6)

规范工具是Getopt::Long。它不是“声明性的”。您是否尝试复制某些特定行为?

编辑:要获得更多权力,您可能会对App::Cmd或部分内容感兴趣(另请参阅App::Cmd::Tutorial)。

在内部使用Getopt::Long::Descriptive,这似乎符合您的大部分要求。这可能对您特别有用,因为它在内部使用Getopt::LongParams::Validate,因此移动当前代码库可能非常容易,但现在可以进行验证。

答案 1 :(得分:4)

CPAN上的GetOpt命名空间中有很多选项。

GetOpt::StdGetOpt::Long都是核心模块。

答案 2 :(得分:1)

MooseX::GetoptMooX::Options是......选项。两者的工作方式类似,并且都使用了Getopt :: Long :: Descriptive,将其与类集成以提供高级验证和默认以及帮助文本。然后你只需使用new_with_options构造函数就可以得到一个类的实例,其中所有的插槽都是从命令行填充的。