In that case, here is the solution I have for you. Please forgive me for my mistaken assumption...
#!/usr/bin/perl
use strict;
use Data::Dumper;
# the configuration parameters along with their defaults
my %config = ('key1' => 'default1',
'key2' => 'default2',
'key3' => undef
);
while (<DATA>) {
next if /^\s*#/; # skip lines that start with # (comments)
next if /^\s*$/; # skip blank lines
s/^\s*//; # remove leading whitespace
s/\s*$//; # remove trailing whitespace
# separate the parameter from the value ' = '
my ($k,$v) = split(/\s*=\s*/,$_,2);
if (exists($config{$k})) {
$config{$k} = $v;
}
else {
print "Config file contains a bad key: k\n";
}
}
# verify that the required info has been supplied
while (my ($k,$v) = each %config) {
unless (defined($v)) {
print "$k needs to be set\n";
}
}
print Dumper \%config;
__DATA__
# some comment
key1 = set to 1
some_bogus_key = some_bogus_value
Will give you this output.
Config file contains a bad key: some_bogus_key
key3 needs to be set
$VAR1 = {
'key1' => 'set to 1',
'key2' => 'default2',
'key3' => undef
};
/\/\averick
perl -l -e "eval pack('h*','072796e6470272f2c5f2c5166756279636b672');"
|