Config-General

 view release on metacpan or  search on metacpan

Changelog  view on Meta::CPAN

     - fixed warning about double my'ed variable $dummi, changed it
       to undef because it was unused anyway.

 2.17
     - added File::Spec support which makes the modules more portable
       (i.e. on win32 systems),
       as suggested by Peter Tandler <Peter.Tandler@ipsi.fhg.de>.

 2.16
     - applied patch by Michael Gray <mjg17@eng.cam.ac.uk> which
       fixes a bug in the Interpolate.pm submodule. A second variable,
       when immediately following the first, did not get interpolated,
       i.e. ${var1}${var2}.

 2.15    - fixed Bug in SaveConfig***, which didn't work.
         - applied patch by Robb Canfield <robb@canfield.com>,
       which fixes a bug in the variable interpolation
       scheme. It did not interpolate blocks nor
       blocknames. This patch fixes this. Patch slightly
       modified by me(interpolation on block and blocknames).
     - enhanced test for variable interpolation to
       reflect this.
     - added check if a named block occurs after the underlying
       block is already an array, which is not possible.
       perl cannot add a hashref to an array. i.e.:
       <bl>
          a = 1
       </bl>
       <bl>
          b = 1
       </bl>
       <bl blubber>
          c = 1
       </bl>
       As you can see, "<bl>" will be an array, and "blubber"
       cannot be stored in any way on this array.
       The module croaks now if such construct occurs.

 2.14    - fixed bug reported by Francisco Olarte Sanz
       <folarte@peoplecall.com>, which caused _parse to
       ignore blocks with the name "0": 
       <0> .. </0>, because it checked just if $block (the name
       between < and >) is true, and from the perl point
       of view "0" is not. Changed it to check for defined.
       Normally I avoid using 'defined' but in this case
       it will not be possible that $block contains the
       empty string, so defined is ok here.

 2.13    - fixed bug reported by Steffen Schwigon <schwigon@webit.de>.
       the parser was still active inside a here-doc, which
       cause weird results if the here-doc contained
       multiple <<XXX strings.
       this bug has been fixed by re-organizing the _read()
       method. now the parser is only active outside of
       here-docs.

     - here-doc parsing bug fixed, which ignored the
       -SplitPolicy settings completely, now it is aware
       of the split policy

 2.12    - fixed cpan bugid #1768, stuff inside a hash given
       by the -DefaultConfig parameter was ignored by
       the new interpolation code, this has been fixed.

     - fixed another bug in the new interpolation code,
       which made variable global, the variable scope
       were ignored. Now a special constructed hash
       exists, which makes sure, that variables only
       valid within its correct scope.

 2.11     - heavy change in the variable interpolation code.
       Peter Sergeant <pete@clueball.com> reported this
       mis-behavior. The problem was that the whole hash
       was feeded to ::Interpolated.pm, but as we all
       know, perl hashes doesn't preserve the order. So,
       in our case the module sometimes was unable to
       resolve variablenames, because they were stored
       in a different location as it occurred in the config.
       The change is, that Config::General now calls
       ::Interpolate.pm (new sub: _interpolate()) itself
       directly on a per-key/value pair basis. The internal
       varstack is now stored on $this globally. So, now
       a variable will be known when it occurs. period :-)


 2.10    - added -StrictVars documentation section to the POD,
       which was missing.

         - fixed a formatting error in the POD documentation.


 2.09    - added bugfix in '#' comment parsing. If current state
       was within a block, then /^   #/ was not ignored as
       comment but instead added as variable. Reported by
       Lupe Christoph <lupe@lupe-christoph.de>

     - added -StrictObjects parameter support in the following
       ::Extended methods: hash() and value().

     - added better parameter checks in the ::Extended::obj()
       method. Its now no more possible to create a new (sub-)
       object from an undefined key or a key which does not
       point to a hash reference.

     - simplified storing of ConfigFile and ConfigHash in new()
       removed my variable $configfile.

     - the original parameter list will now be saved, which is
       required for ::Extended to create new objects with the
       same config as their parents.

 2.08    - added option -StrictVars, which causes Interpolate.pm to
       ignore undefined variables and replaces such occurrences
       with the emppty string.

     - applied patch by Stefan Moser <sm@open.ch>, which fixes
       some weird bevavior if -MergeDuplicateOptions was turned
       on, the parser croaked regardless -MergeDuplicateBlocks
       was set or not. Now the two options behave almost independent
       from each other, which allows one to merge duplicate
       blocks but duplicate options not.

     - changed behavior of setting -MergeDuplicateOptions which
       implied in previous versions -AllowMultiOptions to be
       false. Now this will only be done if the user does not
       set -AllowMultiOptions by himself. This allows one to
       have duplicate blocks which will be turned into an
       array but duplicate options to be merged.

     - applied patch by Matthias Pitzl <matthias@izb.net>, which    
       fixes a bug at parsing apache-like include directive
       (Include ...). It did not properly trim unnecessary whitespaces
       so that the filename to be included became invalid. This
       bug espessially occurred if one saved a hash containing
       a key/value pair like this: "Include" => "/etc/grs.cfg",
       which was then saved as "Include   /etc/grs.cfg", the
       parser returned "  /etc/grs.cfg" which, of course, does
       not exists. odd...

 2.07    - fixed cpan bugid #1351, SaveConfig contained a deprecated
           function call which caused the module to croak.
         - added feature request, if in extended mode (OOP turned
           on with -ExtendedAccess => 1 access to non-existent keys    
           caused a croak. While this is still the default behavior
           it is now possible to turn this off using -StrictObjects => 0.
         - added this to the related pod section in ::Extended.
         - fixed bug in new() which caused a couple of errors
           if the ConfigFile parameter is not set, or is set to
           undef. In this case it will now simply create an empty
           object.
         - fixed related bug in save_file() which will save "" to
           a file now if the config is uninitialized (i.e. the case
           mentioned below arrived).

 2.06    - added -SplitPolicy, -SplitDelimiter and -StoreDelimiter
     - removed whitespace support in keys in the default parser
       SplitPolicy 'guess', which was introduced in 2.02. Now
       I (re-)use the old regex I used before. if you need
       whitespaces in keys, use 'equalsign' as SplitPolicy.
     - the write_scalar() method uses the StoreDelimiter for
       separating options from values.
     - added -CComments to make it possible to turn c-comment
       parsing off.
     - added support for FileHandle objects as parameter to the
       -ConfigFile parameter. This makes it possible to use locking.

 2.05    - fixed bug in ::Extended. It exported for some weird
           reason I can't remember all of its methods. This included
       keys() exists() and delete(), which are perl internals.
       If one used keys() on a normal hash, then the ::Extended
       own keys() were used instead of perls own one. I removed
       the export line.

 2.04    - added RFE from rt.cpan.org (ID: 1218). the ::Interpolate
       module populates now uses of uninitialized variables in
       config files itself instead of just letting perl die().
       The other suggestion of the RFE was declined.

 2.03    - fixed bug in the _parse() routine (better: design flaw).
           after the last patch for allowing whitespaces in
       option names, it had a problem with here-docs which
       contained equal signs. option/value splitting resulted
       in weird output.

     - as a side effect of the bug fix below it is now
       possible to use equal signs inside quoted values, which
       will then be ignored, thus not used for splitting
       the line into an option/value assignment.

     - added a new test, which tests for all possible notations
       of option/value lines.

 2.02    - added patch by Jens Heunemann, which allows to use
           whitespaces in option names.

         - changed the save() calls in the test script (t/run.t)
           to save_file()

     - removed new() from ::Interpolated and ::Extended.
       This may break existing code (they will need to



( run in 0.915 second using v1.01-cache-2.11-cpan-5735350b133 )