in reply to parsing config file

You might be interested in this node, where I posed a similar question. Be aware, though, that others prefer CPAN modules whenever possible--usually because a) the hard work's done, b) they're already tested, and c) the price is right.

I understand there are lots of reasons not to use modules (CPAN or otherwise); I just don't think there are many good ones.

--f

Replies are listed 'Best First'.
Re: Re: parsing config file
by Anonymous Monk on Aug 20, 2001 at 01:38 UTC
    thx, and btw was not for a homework assignment I just like doing stuff without them first ;)
      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');"