MouseX::Getoptでハイフン区切りの引数を受け取る方法
MouseX::Getopt
はプロジェクトで便利に使っているのですが、細かいことで気になっていたのはそのまま使うとオプション名がアンスコ区切りになってしまうことでした。--dry_run
とかちょっとかっこ悪いやん、くらいのほんと些細などうでもいいやつです。
gfxからそういう変換を受け付けるようにするp-rあったら送ってきてもいいよとは言われていて、そういうTrait作る感じかなーとか思ってたけど、まあ以下の様な感じで良いかってなりました。
package MyCLI {
use Mouse;
with 'MouseX::Getopt';
has dry_run => (
traits => [ 'Getopt' ],
is => 'ro',
isa => 'Bool',
cmd_flag => 'dry-run',
);
}
my $app = MyCLI->new_with_options;
...
プロジェクトだとMouse使う前提なのでMouseX::Getopt使ってます。スクリプトでもちゃんとモジュール化されたpmファイルを作る前提になるので、テストとかも書きやすくなるし、script/以下にファイルが散らばらないし、便利ですね。