http://qs1969.pair.com?node_id=53326


in reply to Parsing external config file

Not an answer to your question, but I would really recommend you investigate the AppConfig module. Makes changing/adding parameters at a later date extremely easy. It also handles both config files and commandline options.

Pete

Replies are listed 'Best First'.
Re: (2) Parsing external config file (variable interpolation in config file?)
by ybiC (Prior) on Jan 21, 2001 at 19:34 UTC
    Thanks for the suggestion, BBP.   I was going to do that very thing a while back, and researched as many config file parsers as I could find.  

    A new twist has cropped up though.   It would simplify things a lot if I could include variable names for new passwords and community strings in the external config file.   Not the passwords themselves, mind you (the script prompts for and retains them in RAM).   I believe the term is "variable interpolation".

    Do you know if AppConfig would allow that?   Or should I look at something like doing Perl code as a config file?   Ideally, it would go something like this, like templating I suppose:

    [SetPass] conf t enable pass $newen line con 0 pass $newpass login line aux0 pass $newpass login line vty 0 4 pass $newpass login
        cheers,
        Don
        striving for Perl Adept
        (it's pronounced "why-bick")

    Update: Hmmm... that sounds *very* interesting BoredByPolitics.   /me wanders off to take a look...

      Yes!

      You can define 4 types of config variable -

      • Boolean ("varname!")
      • Scalar ("varname=s")
      • Array ("varname=@")
      • Hash ("varname=%")
      So your line enable pass $newen would be best handled as a hash, which would be called enable.

      [section] has the effect of prefixing the varname with the section name, so login would become SetPass_login.

      Multiple assignments to the same array or hash add further elements.

      Both environment varibles, and those previously defined in the config file, can be expanded as values.

      Take a look at the pods for AppConfig::State and AppConfig::File for more details.

      Overall I'm very impressed with this module - it has definately saved me alot of time with the program I'm currently writing.

      Pete