package App::Rad::Config;
sub load_config {
my ($c, @files) = (@_);
foreach my $filename (@files) {
$c->debug("loading configuration from $filename");
open my $CONFIG, '<', $filename
or Carp::croak "error opening $filename: $!\n";
while (<$CONFIG>) {
chomp;
s/#.*//;
s/^\s+//;
s/\s+$//;
next unless length;
if ( m/^([^\=\:\s]+) # key
(?: # (value is optional)
(?:\s*[\=\:]\s*|\s+) # separator ('=', ':' or whitespace)
(.+) # value
)?
/x
) {
$c->config->{$1} = $2;
}
}
close $CONFIG;
}
}
42;