2013-01-18 75 views
2

我有一個新的腳本,我需要寫在Perl中,以利用我們的Perl代碼庫(不,我不能轉換它,還沒有)。我們的編碼標準決定了Getopt::Long::GetOptions(),但我意識到如果我可以將python的optparse.OptionParser放入它,我的選項處理將會大大改進和簡化。在python中我喜歡的東西:驗證輸入,格式和必需/可選,以及基於參數配置的自動幫助字符串生成。是否有一個相當於python的optparse.OptionParser的perl模塊?

任何提示?我知道我可以推出自己的產品,但如果已經完成,我寧願使用別人的作品。

+0

想知道爲什麼要改進和簡化現有代碼庫中的選項處理? – ysth

+0

@ysth很好的問題。這是一個現有代碼庫的新腳本 - 我把它扔到那裏,沒有人讓我移植它。我的編輯缺乏清晰度。謝謝 –

+1

在這種情況下,App :: Cmd可能就在你的衚衕裏。 –

回答

6

規範工具是Getopt::Long。它不是「聲明式」的。是否有一些特定的行爲正在嘗試複製?

編輯:更多的權力,你可能會感興趣的App::Cmd或部分(見也App::Cmd::Tutorial)。

這在內部使用Getopt::Long::Descriptive這似乎滿足您的大部分要求。這可能對你特別有用,因爲它在內部使用Getopt::LongParams::Validate,所以移動你當前的代碼庫可能非常容易,但現在已經驗證。

+0

是的,我已經使用(編輯的問題來反映)。 OptParser做了很多工作,包括驗證,並根據選項生成幫助文本。 –

+0

看我上面的編輯 –

1

MooseX::GetoptMooX::Options是,很好...選項。兩者的工作方式相似,均使用Getopt :: Long :: Descriptive,將其與類集成以提供高級驗證和默認以及幫助文本。然後,您只需使用new_with_options構造函數,並從命令行中獲取其所有插槽填充的類的實例。

相關問題