Remove scripts strip-result-env-* (users can use 'jq' or other tools to do this).
Move script peri-run to Perinci-CmdLine-Any.
Remove --action (see note in the Incompatible Changes section about the change in the way command-line options are parsed).
Move examples/ to Perinci-CmdLine-Examples, to help reduce dependencies.
INCOMPATIBLE CHANGES
To reduce confusion and make things simpler, change the way command-line options are parsed. Argument options which happen to clash with common options (e.g. --help, --version) are now renamed to --help-arg (or --help-arg2 and so on) so no options clash with each other. Thus, --action is no longer needed.
INTERNAL
Refactoring: split some functionality to Perinci::CmdLine::Base (in separate dist) for creating Perinci::CmdLine::Lite, a lightweight alternative that doesn't use Moo, Perinci::Access, nor Perinci::Result::Format. There are now Perinci-CmdLine and Perinci-CmdLine-Lite distributions.
Refactoring: run() and run_*() now returns enveloped response instead of int. All output is now returned as string by run_*() instead of printed directly (except for streaming output).
Refactoring: No long uses internal attributes like $self->{_subcommand}. Instead, now a per-request (per-run()) stash/hash $r is passed around. This is not unlike the technique used in Apache handlers and Data::Sah. It's cleaner because the per-request state is isolated from the object itself.
Refactoring: help-generating methods now separated into a separate role (Perinci::CmdLine::Role::Help), just to be more organized.
DOCUMENTATION
Split some documentation (FAQ) from Perinci::CmdLine to Perinci::CmdLine::Manual and split to Perinci-CmdLine-Base so it can be installed without requiring too many dependencies.