The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
2003-03-16   Darren Duncan <perl@DarrenDuncan.net>

	* Release 1.041.

	* This is a small maintenance release that is mainly for improving
	documentation.  Similar maintenance releases are being done with all of my
	distributions simultaneously.  A lot of it was formatting issues that were
	easy to miss before; the other bullet points below list the non-formatting
	issues.  These files had formatting fixes: ParamParser.pm, ChangeLog.

	* The distribution file layouts have also been standardized, with modules
	going in a "lib" folder and tests going in a "t" folder.  "test.pl" was
	changed to "t/Class-ParamParser.t" and "ParamParser.pm" was changed
	to "lib/Class/ParamParser.pm".

	* Updated NAME in ParamParser.pm to match the official registered module
	list.

	* Updated all Copyright statements to a better (and longer) version, which
	is dated 1999-2003.  Your rights to use these modules haven't changed, but
	they may now be easier to understand.  These statements appear once in the
	ReadMe file at the bottom (under "AUTHOR"), and twice in each module (.pm
	file), a full version at the bottom (under "AUTHOR") and a shorter version
	at the top (in code comments).

	* Added the "use warnings" pragma at the top of all files beside "use
	strict"; every occurance of "use strict" gained a "use warnings" whether it
	was in the module proper or in its test script or in its SYNOPSIS.  This
	should save users from having to put -w on the command line for them.

	* Incremented the module $VERSION number by 0.0009, and all test scripts to
	require the new version.  Also, where any of my modules use others of my
	modules, they now require the latest version as of this writing, for
	simplicity of maintenance.

	* Updated all test scripts to read $verbose from @ARGV (command line
	arguments), and other test script improvements.

	* Updated these sections of the ReadMe file: INSTALLATION.

2001-05-28   Darren Duncan <perl@DarrenDuncan.net>

	* Release 1.0401.

	* Corrected a warning that appears when converting a positional SOURCE to 
	named where SOURCE has more array elements than NAMES.  While the correct 
	result was returned all along, warnings can be annoying in this context.  
	Thanks to Laurie Shammel <lshammel@imt.net> for alerting me to this.

2001-05-01   Darren Duncan <perl@DarrenDuncan.net>

	* Release 1.04.

	* This module has been reorganized internally by separating its core 
	functionality into a set of private methods: _args_are_named(), 
	_posit_to_named(), _named_to_posit(), _rename_named_args().  The two public 
	methods, params_to_hash() and params_to_array() make use of these as much as 
	possible and otherwise handle their proprietary details on their own.

	* The above changes were made in preparation for merging this module with 
	other existing named-arguments modules to produce a new standard module.  
	Of course, there is a chance nothing will happen, in which case this module 
	is simply better organized now than before, as well as easier to subclass.

	* The pseudo-public method params_to_hash_or_array() no longer exists, so 
	any code that calls it directly will break.  No one should have been using 
	it directly anyway, as it was just to implement the other public methods.
	The count of tests was reduced to 90 from 92 as the two missing ones called 
	the removed method directly.

	* Named arguments being renamed are now moved into a second hash during the 
	process rather than being re-inserted into the one they came from.  As a 
	result, some name-collisions may result in one value overriding the other 
	instead of the reverse.  Note that the results of collisions are now easier 
	to predict than before.  This change affected two test results, which have 
	been updated to make the new way correct.  Of course, you should never set 
	up your renaming such that there are collisions anyway.

2001-02-06   Darren Duncan <perl@DarrenDuncan.net>

	* Release 1.03.

	* This release fixes issues discovered by cpan-testers@perl.org, as detailed 
	in brief below.

	* Renamed some included files to "Makefile.PL", "test.pl", and "MANIFEST".  
	Due to the case-sensitivity of some systems, it is like the files aren't 
	there otherwise.

	* The RENAME hash is now iterated over in the order of "sort keys %hash" 
	instead of "keys %hash".  This ensures that renaming pairs are always 
	evaluated in the same order across different Perl installs (given the same 
	hash, "keys %hash" returns its results in a different order on some systems 
	than on others).  During normal use, this wouldn't affect anything, because 
	one isn't *supposed* to be renaming one key to the same thing another is 
	renamed from.  But in the odd circumstance that one is doing that, it does 
	make a difference in which order "a->b,c->a" is evaluated.

	* The serialize() function inside "test.pl", that I use to stringify the 
	multi-dimensional data structures it needs to compare, has been modified such 
	hashes are now serialized in the order of "sort keys %hash" instead of 
	"keys %hash".  This change was prompted by test failures on one system due to 
	the fact that equal hashes were serializing in a different order across 
	systems, so the comparisons as scalars didn't always match.

	* Improved the install instructions in my ReadMe file.

2001-02-04   Darren Duncan <perl@DarrenDuncan.net>

	* Release 1.02.

	* This release is the first one that includes the CPAN standard files 
	"MakeFile.pl", "Test.pl", and "Manifest", which were all created following 
	the previous release.  "Test.pl" was used to discover several bugs that my 
	production use of the modules didn't; their fixes are detailed below.
	The content of "Manifest" was previously inside the "ReadMe" file.

	* Added a third method, params_to_hash_or_array(), which is now used to 
	implement both of the existing methods; this eliminates an 80% redundancy in 
	their code.  The first argument of the new method says which of the original 
	two, params_to_hash() or params_to_array(), it acts like.

	* Added a sixth argument to all methods, which lowercases (makes 
	case-insensitive) named source parameters when true, for easier matching.

	* Added programmer documentation to the various blocks of code, so it is 
	easier to see how they work; useful because a lot is done with little code.

	* Fixed bug where RENAME failed to match parameters for renaming to "", 
	which is the explicit signal to delete them.

	* Any SOURCE that has an odd number of elements will now be interpreted as 
	positional format; previously, SOURCE needed to have exactly one element for 
	this to happen.  As before, tests for named format have higher precedence, 
	so a SOURCE whose first element is either a hash or starts with a "-" is 
	considered named regardless of the number of elements in SOURCE.  This 
	change fixed a bug causing an "Odd number of elements in hash list" warning 
	when an odd number of SOURCE elements was interpreted as named format; 
	however, that warning will still appear with an odd list starting with "-".

	* If there are multiple "remaining" values in SOURCE, they are now all 
	returned rather than just the first one.  See the parameter documentation 
	for REM for details.  This means that previously ignored second and third 
	"remaining" values will cause the return value for REM to be an array ref 
	instead of a scalar, so your code may have to check for this.

	* Fixed bug where NAMES defaulted to a single value of "" when it should 
	have defaulted to an empty list; this had resulted in params_to_array() 
	always returning a value when it should have returned none.

	* Fixed bug occurring when we make positional output from an empty 
	SOURCE whereby the output is an array containing "undef" values; the 
	count of these values was the same as the number of values in NAMES; 
	now the returned array is empty as it should be.

2001-01-01   Darren Duncan <perl@DarrenDuncan.net>

	* Release 1.01.

	* This release is the first one following official registrations with 
	"The Perl 5 Module List".  The updated entry would look like this:

Class::
::ParamParser     bdpO Provides complex parameter list parsing      DUNCAND

	* Module POD has been significantly updated, particularly in the Synopsis 
	section, and the ReadMe file was overhauled.

	* There were no changes to the code itself.

2000-08-26   Darren Duncan <perl@DarrenDuncan.net>

	* Release 1.0.

	* This release contains my "Class::ParamParser" module which was previously a
part of my "libdwg" distribution, but I have set it off on its own for those of
you who only want to use this and not the other modules.

	* This module contains complete POD within it.

	* This module requires Perl version 5.004.

2000-08-23   Darren Duncan <perl@DarrenDuncan.net>

	* libdwg 1.11, the last version of the distribution to include
Class::ParamParser, was released.

2000-07-23   Darren Duncan <perl@DarrenDuncan.net>

	* libdwg 1.0, the first version of any distribution to include
Class::ParamParser, was released on CPAN.

2000-04-21   Darren Duncan <perl@DarrenDuncan.net>

	* Completed primary development on this module.

2000-01-30   Darren Duncan <perl@DarrenDuncan.net>

	* Began development on the final version of this module.

	* Module based on a template created by h2xs 1.18.

1999-07-29 thru 1999-11-13

	* Worked on prototype of code that ended up in this module.