http://www.perlmonks.org?node_id=770567


in reply to conf file in Perl syntax

see perlintro
you can use .ini files store your configurations like
host1=192.168.1.1
...

and to access those variables and values you can use config::inifiles
you can also check do if you just want that configuration from a .pl file into the main script

Vivek
-- In accordance with the prarabdha of each, the One whose function it is to ordain makes each to act. What will not happen will never happen, whatever effort one may put forth. And what will happen will not fail to happen, however much one may seek to prevent it. This is certain. The part of wisdom therefore is to stay quiet.

Replies are listed 'Best First'.
Re^2: conf file in Perl syntax
by Ravendark (Acolyte) on Jun 11, 2009 at 09:20 UTC
    Good, nice I like it. I read that you can have the values in an array with:
    @values = $cfg->val('Section', 'Parameter'); # this will be the array +holding the IPs
    How can I get the names of the hosts in an array too?
      you can tie to a hash, and get to iterate through the keys(variables) and values(actual values) of the hash.
      an example is given in the man page of the config::inifiles itself. it is easy
      use Config::IniFiles; my %ini tie %ini, 'Config::IniFiles', ( -file => "/path/configfile.ini" ); print "We have $ini{Section}{Parameter}." if $ini{Section}{Parameter +}; my @keys = keys %{$ini{$section}} while (($k, $v) = each %{$ini{$section}}) {...} if( exists %{$ini{$section}}, $parameter ) {...}

      Vivek
      -- In accordance with the prarabdha of each, the One whose function it is to ordain makes each to act. What will not happen will never happen, whatever effort one may put forth. And what will happen will not fail to happen, however much one may seek to prevent it. This is certain. The part of wisdom therefore is to stay quiet.
        I am sorry but I dont quite get it. Lets say that we have the following ini file:
        [hosts] host_1 = 192.168.1.1 host_2 = 192.168.1.2 host_3 = 192.168.1.3
        I need to have @hosts, containing: host_1, host_2 & host_3. Also @ips containing 192.168.1.1, 192.168.1.2 & 192.168.1.3 Is this possible? Sorry for me being stupid!