我有一个新脚本,我需要用perl编写,以利用我们的perl代码库(不,我无法转换它,不管怎么说)。我们的编码标准规定了Getopt::Long::GetOptions()
,但我意识到如果我可以将python的optparse.OptionParser放入其中,我的选项处理将会大大改进和简化。我在python中喜欢的东西:输入验证,格式和必需/可选,以及基于参数配置的自动帮助字符串生成。
任何提示?我知道我可以自己动手,但如果已经完成,我宁愿使用别人的工作。
答案 0 :(得分:6)
规范工具是Getopt::Long。它不是“声明性的”。您是否尝试复制某些特定行为?
编辑:要获得更多权力,您可能会对App::Cmd或部分内容感兴趣(另请参阅App::Cmd::Tutorial)。
在内部使用Getopt::Long::Descriptive,这似乎符合您的大部分要求。这可能对您特别有用,因为它在内部使用Getopt::Long
和Params::Validate,因此移动当前代码库可能非常容易,但现在可以进行验证。
答案 1 :(得分:4)
CPAN上的GetOpt命名空间中有很多选项。
GetOpt::Std和GetOpt::Long都是核心模块。
答案 2 :(得分:1)
MooseX::Getopt和MooX::Options是......选项。两者的工作方式类似,并且都使用了Getopt :: Long :: Descriptive,将其与类集成以提供高级验证和默认以及帮助文本。然后你只需使用new_with_options
构造函数就可以得到一个类的实例,其中所有的插槽都是从命令行填充的。