igoryonya has asked for the wisdom of the Perl Monks concerning the following question:

Hello, I was going to write a program, that needs to get information from server software types, such as apache, bind, isc-dhcpd, squid, etc.:

I was going to write some abstraction config parser lib, that would accept sort of drivers/plugins. Each plugin, understanding it's own format, i.e. squid plugin would parse (read/write) squid file(s), apache config file(s), etc. Each plugin would connect to the abstraction library, so, by using the abstraction, I would be able to read/write configs, for which plugins were written.

Before writing such subsystem for my program, I was checking to see, if something of such already exists. I've stumbled upon a module, called: ConfigReader, but after reading it's man, I didn't really understand, if this is the brick, that I could use for my task.
Thanx for help.

Replies are listed 'Best First'.
Re: Software config reader
by salva (Canon) on Dec 23, 2017 at 21:43 UTC
      I have looked at Config::Model and tons of other modules under the Config:: and not only tree. Didn't find any, that interfaces comments also. They only parse the actual config data, omitting the comments, but I need the comment data from the config files also, because, there is some additional information in comments, that would be needed, that is described in comments, that I would post-parse with some additional code.

      Of course, there is a possibility to just parse the config file by opening it yourself, getting all of the comments out to the variable and gathering the additional info from comments, but it would be useless, because the comments are not tied to parameters that way. there is no proximity information of the comment from the parameter, i.e. how far away is a particular comment from whatever parameter is.

      Seems like, I have to write my own parser.
      !F*&k :) , I thought, that IIRC is some kind of protocol, related to IRC.