in reply to Simple Configuration Parser
Not only is it shorter, it's slightly more efficient. Additionally, the split will remove whitespace from after the key and before the value. It even now allows the value to contain an equal sign.sub readConfigData { my $filename = shift; # name of the config file. my %settings; open( DATAFILE, "< $filename" ) or die "Can't Open $filename; reason: $!\n"; while ( <DATAFILE> ) { next unless /\S/; # skip lines of only whitespace next if /^\s*#/; # skip comments s/^\s+|\s+$//g; # trim whitespace in place my ( $cfglabel, $cfgvalue ) = split( /\s*=\s*/, $_, 2 ); $settings{$cfglabel} = $cfgvalue; } close( DATAFILE ) or die "Can't Close $filename; reason: $!\n"; return %settings; }
Very Early Update: dws pointed out that I had forgotten a slash. See if you can figure out where!
|
|---|