Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

Re: Parsing external config file

by BoredByPolitics (Scribe)
on Jan 21, 2001 at 18:17 UTC ( #53326=note: print w/replies, xml ) Need Help??

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.


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
        striving for Perl Adept
        (it's pronounced "why-bick")

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


      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.


Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://53326]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (2)
As of 2022-01-25 04:30 GMT
Find Nodes?
    Voting Booth?
    In 2022, my preferred method to securely store passwords is:

    Results (65 votes). Check out past polls.