Getopt::Compact::WithCmd is yet another Getopt::* module. It allows you to define git-like options. In addition, usage can be set at the same time. WWW: https://metacpan.org/release/Getopt-Compact-WithCmd