The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

mutate_attributes ( args => $hashref, props => $hashref, type => 'str' )

A hook for running a second command from within a command without having to use the commandline argument parsing.

If type, uuid, or primary_commands are not passed in, the values from the previous command run are used.

cmp_regex

The regex to use for matching property key/value separators.

$ID_REGEX

The regex to use for matching the id argument (luid / uuid).

setup_from_args

Sets up this context object's arguments and key/value pairs from an array that looks like an @ARGV.

parse_args @args

This routine pulls arguments (specified by --key=value or --key value or -k value) and properties (specified by --props key=value or -- key=value) as passed on the command line out of ARGV (or something else emulating ARGV) and sticks them in "args" or "props" and "prop_set" as necessary. Argument keys have leading "--" or "-" stripped.

If a key is not given a value on the command line, its value is set to undef.

More complicated separators such as =~ (for regexes) are also handled (see "cmp_regex" for details).

set_type_and_uuid

When working with individual records, it is often the case that we'll be expecting a --type argument and then a mess of other key-value pairs.

This routine figures out and sets type and uuid from the arguments given on the command-line, if possible. Being unable to figure out a uuid is fatal.