ANNOUNCE: Config::Scoped

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

I am very pleased to announce a new submission to the CPAN,
Config::Scoped. Comments welcome.

 From the README:


     Config:Scoped - feature rich configuration file parser


     Config::Scoped has the following highlights as a configuration file

     * Complex recursive datastructures to any extent with scalars,
       lists and hashes as elements,

     * As a subset parses any complex Perl datastructures
       (no references and globs) without *do* or *require*,

     * Include files with recursion checks,

     * Controlled macro expansion in double quoted tokens,

     * Lexically scoped parameter assignments and pragma directives,

     * Perl quote like constructs to any extent, '', "", and
       here docs <<,

     * Perl code evaluation in Safe compartments,

     * Caching and restore with MD5 checks to determine
       alterations in the original config files,

     * Standard macro, parameter, declaration redefinition
       validation, may be overridden to validate on semantic

     * Standard file permission and ownership safety validation,
       may be overridden,

     * Fine control for redefiniton warnings with pragma's
       and other safety checks,

     * Easy inheritable, may be subclassed to build parsers
       with specialized validation features,

     * Condoning syntax checker, semicolons and or commas are not always
       necessary to finish a statement or a list item if the end can be
       guessed by other means like newlines, closing brackets,
       braces etc.,

     * Well spotted messages for syntax errors even within include
       files with correct line numbers and file names,

     * Exception based error handling,

     * etc.,


     Parse::RecDescent, Error

     Standard modules:



Configuration file example:

     # default parameters
     community = public;
     variables = [ ifInOctets, ifOutOctets ];
     oids = {
    ifInOctets  =;
    ifOutOctets =;

     %warnings parameter off;    ### allow parameter redefinition

     # declarations
     devices rtr001 {
    ports = [ 1, 2, 8, 9 ];

     devices rtr007 {
    community = 'really top secret!';
    ports = [ 1, 2, 3, 4 ];


     It's all pure Perl.

     perl Makefile.PL
     make test
     make install


     Karl Gaissmaier (


      Copyright (c) 2004, Karl Gaissmaier. All Rights Reserved.
      This program is free software; you can redistribute it and/or
      modify it under the same terms as Perl itself.

Karl Gaissmaier       KIZ/Infrastructure, University of Ulm, Germany           Service Group Network
Tel.: ++49 731 50-22499

Site Timeline