Vulcan::OptConf - Get command line options.


 use Vulcan::OptConf;

 $Vulcan::OptConf::ARGC = -1;
 @Vulcan::OptConf::CONF = qw( pass_through );

 my $option = Vulcan::OptConf->load( '/conf/file' );

 my %foo = $option->dump( 'foo' );

 my %opt = $option->set( bar => 'baz' )->get( 'timeout=i', 'verbose' )->dump;


load( $conf )

Load options from a YAML file $conf, which if unspecified, defaults to $RealBin/.config, or $RealBin/../.config, if either exists. Returns object.

dump( $name )

Dump options by $name, or that of $0 if $name is unspecified. Returns HASH in scalar context or flattened HASH in list context.

set( %opt )

Set options specified by %opt for $0. Returns object.

get( @option )

Invoke Getopt::Long to get @option, if any specified. Returns object.

Getopt::Long is configured through @CONF.

The leftover @ARGV size is asserted through $ARGC. @ARGV cannot be empty if $ARGC is negative, otherwise size of @ARGV needs to equal $ARGC.

assert( @option )

print help and exit, if any of @option is not defined.

macro( $path )

Replace $ROOT in $path if defined.