Changes in version 2.24
-----------------------
* Add object oriented interface:
use Getopt::Long;
$p = new Getopt::Long::Parser;
$p->configure(...configuration options...);
if ($p->getoptions(...options descriptions...)) ...
* Add configuration at 'use' time:
use Getopt::Long qw(:config no_ignore_case bundling);
* Correct warnings when the user specified an array or hash
destination using a non-lowercase option, e.g. "I=s@".
* Correct ambiguous use of 'set' and 'reset' in the Configuration
section of the documentation.
* Add configuration option "posix_default" to reset to defaults as if
POSIXLY_CORRECT were set.
* Disallow "no" prefix on configuration options "default", "prefix" and
"prefix_pattern".
* Add a section "Trouble Shooting" to the documentation, with
frequently asked questions.
Changes in version 2.23
-----------------------
* When a call-back routine issues 'die', messages starting with "!"
are treated specially. Currently, only "!FINISH" is recognised (see
the next bullet point). Other messages that start with "!" are
ignored.
* Change 'die("FINISH") (see changes in 2.21) to die("!FINISH"). This
is an incompatible change, but I guess noone is using this yet.
Changes in version 2.22
-----------------------
* Fixes a bug in the combination of aliases and negation.
Old: "foo|bar!" allowed negation on foo, but not on bar.
New: "foo|bar!" allows negation on foo and bar.
Caveat: "foo|f!", with bundling, issues the warning that negation on
a short option is ignored. To obtain the desired behaviour, use
"foo!" => \$opt_foo, "f" => \$opt_foo
or
"foo|f" => \$opt_foo, "nofoo" => sub { $opt_foo = 0 }
Remember that this is _only_ required when bundling is in effect.
Changes in version 2.21
-----------------------
* New documentation.
* User defined subroutines should use 'die' to signal errors.
* User defined subroutines can preliminary terminate options
processing by calling die("FINISH");
* Correct erroneous install of Getopt::Long manpage.
Previous versions seem to install Getopt::GetoptLong instead of
Getopt::Long.
Changes in version 2.20
-----------------------
* Prevent the magic argument "<>" from being interpreted as option
starter characters if it is the first argument passed.
To use the characters "<>" as option starters, pass "><" instead.
* Changed license: Getopt::Long may now also be used under the Perl
Artistic License.
* Changed the file name of the distribution kit from "GetoptLong..."
to "Getopt-Long-..." to match the standards.
Changes in version 2.19
-----------------------
* Fix a warning bug with bundling_override.
There's no version 2.18
-----------------------
Changes in version 2.17
-----------------------
* Getopt::Long::config is renamed Getopt::Long::Configure. The old
name will remain supported without being documented.
* Options can have the specifier '+' to denote that the option value
must be incremented each time the option occurs on the command line.
For example:
my $more = 2;
Getopt::Long::Configure("bundling");
GetOptions ("v+" => \$more);
print STDOUT ("more = $more\n");
will print "more = 3" when called with "-v", "more = 4" when called
with "-vv" (or "-v -v"), and so on.
* Getopt::Long now uses autoloading. This substantially reduces the
resources required to 'use Getopt::Long' (about 100 lines of over
1300 total).
* It is now documented that global option variables like $opt_foo
need to be declared using 'use vars ...' when running under 'use
strict'.
* To install, it is now required to use the official procedure:
perl Makefile.PL
make
make test
make install
Changes in version 2.16
-----------------------
* A couple of small additional fixes to the $` $& $' fixes.
* The option prefix can be set using config("prefix=...") or, more
powerful, with config("prefix_pattern=..."); see the documentation
for details.
* More 'perl -w' warnings eliminated for obscure cases of bundling.
This version is identical to 2.15, which was not released.
There's no version 2.14
-----------------------
Changes in version 2.13
-----------------------
* All regexps are changed to avoid the use of $`, $& and $'. Using one
of these causes all pattern matches in the program to be much slower
than necessary.
* Configuration errors are signalled using die() and will cause the
program to be terminated (unless eval{...} or $SIG{__DIE__} is
used).
* Option parsing errors are now signalled with calls to warn().
* In option bundles, numeric values may be embedded in the bundle
(e.g. -al24w80).
* More 'perl -w' warnings eliminated for obscure cases of bundling.
* Removed non-standard version number matching. Version 1.121 is now
more than 1.12 but less than 1.13.
Changes in version 2.12
-----------------------
* A single question mark is allowed as an alias to an option, e.g.
GetOptions ("help|?", ...)
Changes in version 2.11
-----------------------
* User linkage may be an object, provided the object is really a hash.
For example:
{ package Foo;
sub new () { return bless {}; }
}
my $linkage = Foo->new();
GetOptions ($linkage, ... );
* Some bug fixes in handling obscure cases of pass-through.
Changes in version 2.9
----------------------
* A new way to configure Getopt::Long. Instead of setting module local
variables, routine Getopt::Long::config can be called with the names
of options to be set or reset, e.g.
Getopt::Long::config ("no_auto_abbrev", "ignore_case");
Configuring by using the module local variables is deprecated, but
it will continue to work for backwark compatibility.
Changes in version 2.6
----------------------
* Handle ignorecase even if autoabbrev is off.
* POD corrections.
Changes in version 2.4
----------------------
* Pass-through of unrecognized options. Makes it easy to write wrapper
programs that process some of the command line options but pass the
others to another program.
* Options can be of type HASH, now you can say
--define foo=bar
and have $opt_define{"foo"} set to "bar".
* An enhanced skeleton program, skel2.pl, that combines the power of
Getopt::Long with Pod::Usage.
Module Pod::Usage can be obtained from CPAN,
http://www.perl.com/CPAN/authors/Brad_Appleton.
Possible incompatibility in version 2.4
---------------------------------------
Previous versions of Getopt::Long always downcased the option variable
names when ignorecase was in effect. This bug has been corrected. As a
consequence, &GetOptions ("Foo") will now set variable $opt_Foo
instead of $opt_foo.