in reply to Simple Configuration Parser

That's simple enough, I don't see where it could fail. It's possible to shorten things slightly, at least when skipping comments or whitespace:
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; }
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.

Very Early Update: dws pointed out that I had forgotten a slash. See if you can figure out where!