2

perlコードベースを活用するために、perlで作成する必要のある新しいスクリプトがあります(いいえ、まだ変換できません)。私たちのコーディング標準は指示しGetopt::Long::GetOptions()ていますが、Pythonのoptparse.OptionParserをドロップするだけで、オプションの処理が大幅に改善され、簡素化されることを理解しています。私がPythonで気に入っているのは、フォーマットと必須/オプションの両方の入力の検証、および引数の構成に基づく自動ヘルプ文字列の生成です。

任意のヒント?自分で転がすことができることは知っていますが、すでに行われている場合は、他の人の作品を使用したいと思います。

4

3 に答える 3

6

正規のツールはGetopt::Longです。それ自体は「宣言型」ではありません。複製しようとしている特定の動作はありますか?

編集:より強力なものについては、 App :: Cmdまたはその一部に興味があるかもしれません( App :: Cmd :: Tutorialも参照してください)。

内部的には、これはGetopt :: Long::Descriptiveを使用します。これはほとんどの要件を満たしているようです。これは、内部でParams :: Validateを使用するため、特に便利ですGetopt::Longしたがって、現在のコードベースを移動するのは非常に簡単ですが、検証が可能になりました。

于 2013-01-18T16:54:27.727 に答える
4

CPANのGetOpt名前空間には多くのオプションがあります。

GetOpt::StdGetOpt::Longはどちらもコアモジュールです。

于 2013-01-18T16:55:29.670 に答える
1

MooseX::GetoptMooX::Optionsは、まあ...オプションです。どちらも同じように機能し、Getopt :: Long :: Descriptiveを内部で使用し、クラスと統合して、高度な検証とデフォルト設定、およびヘルプテキストを提供します。次に、new_with_optionsコンストラクターを使用するだけで、コマンドラインからすべてのスロットが入力されたクラスのインスタンスを取得します。

于 2013-01-18T18:36:15.613 に答える