Changes for version 0.03 - 2026-09-24
- Add hash options: with hash => 1 an option takes --name key=value pairs and its reader returns a hashref. Every value passes the usual checks. Help shows the key=value syntax and completion fills in the value behind the typed key
- Absent multiple options and slurpy args now read as an empty arrayref, an absent hash option as an empty hashref
- Add csv => 1 for multiple options: every given value is split at commas, the items are trimmed and an empty item is rejected
- Add typehint to option and arg specs: the tag rendered after the help text in place of the type's own label
- Add objectlist options: with objectlist => 1 an option takes --name INDEX.FIELD=VALUE words and its reader returns a list of hashrefs. The indices must form 0..n-1
- Add createPathIfMissing to the file and dir types: the path is created, parents included, once the parse settles on it
- --create-default-config writes LF line endings on every platform and refuses a symlink target on Windows as well, where O_EXCL follows a dangling link
- Tests pass on Windows
Documentation
Modules
Object::Pad based POSIX compatible options processor
shell completion scripts and their answers
grouped config file reader and writer
config format base class and registry
JSON config format
YAML config format
user-facing error exception
control-flow exception ending a parse successfully
usage and version renderer
the parsing engine
name-to-class registry
result object base class
runtime result class builder
trusted spec root
one positional arg spec
validated config block
one spec level
one option spec
option type base class and registry
directory path type
file path type
float type
integer type
numeric type base class
filesystem path type base class
URL type
internal helpers