$configfile = $cfmeta->default if $cfmeta->has_default;
}
- if(defined $configfile) {
- $config_from_file = $class->get_config_from_file($configfile);
+ if (defined $configfile) {
+ $config_from_file = eval {
+ $class->get_config_from_file($configfile);
+ };
+ if ($@) {
+ die $@ unless $@ =~ /Specified configfile '\Q$configfile\E' does not exist/;
+ }
}
}
my $constructor_params = ( @params == 1 ? $params[0] : {@params} );
-
+
Carp::croak("Single parameters to new_with_options() must be a HASH ref")
unless ref($constructor_params) eq 'HASH';
# did the user request usage information?
if ( $processed{usage} && ($params->{'?'} or $params->{help} or $params->{usage}) )
{
- $processed{usage}->die();
+ $class->_exit_with_usage($processed{usage});
}
$class->new(
);
}
+sub _exit_with_usage {
+ my ($self, $usage) = @_;
+ $usage->die();
+}
+
sub _parse_argv {
my ( $class, %params ) = @_;