sub read_the_config() { open(CFG, "<$file") || log_error("Problem reading $file - $!"); while () { chomp; # remove newline s/\s+$//; # remove trailing space s/\s+/ /g; # collapse white spaces to ' ' next if /^ *\#/; # skip comment lines next if /^\s*$/; # skip empty lines if (/^ \S/) { # multiline options $lines[$#lines] .= $_; } else { push @lines, $_; } } close CFG; } #### sub read_the_config() { local $localfile = $file; open(CFG, "<$localfile") || log_error("Problem reading $file - $!"); while () { chomp; # remove newline s/\s+$//; # remove trailing space s/\s+/ /g; # collapse white spaces to ' ' next if /^ *\#/; # skip comment lines next if /^\s*$/; # skip empty lines if (/^ \S/) { # multiline options $lines[$#lines] .= $_; } else { push @lines, $_; } } close CFG; } #### sub read_the_config($$$$) { my ($file, $def, $cfgref, $order) = @_; my @lines; open(CFG, "<$file") || log_error("Problem reading $file - $!"); while () { chomp; # remove newline s/\s+$//; # remove trailing space s/\s+/ /g; # collapse white spaces to ' ' next if /^ *\#/; # skip comment lines next if /^\s*$/; # skip empty lines next if /^TopTalker*/; if (/^ \S/) { # multiline options $lines[$#lines] .= $_; } else { push @lines, $_; } } close CFG; foreach (@lines) { do all sorts of groovy stuff....} } #### ... local *CFG; open(CFG, "<$file") || log_error("Problem reading $file - $!"); while () { ... return \@lines;