Hi Eric,
[Quoting Eric Wilhelm, on June 15 2005, 16:58, in "RFC: Getopt::Modern"]
> This is essentially a replacement/update for Getopt::Long.
As the author and maintainer of Getopt::Long I would be very
interested to know what exactly your problems are.
15 years of experience has taught me that option handling is a very
personal and almost a religious thing, one of the reasons there are so
many Getopt:: modules on CPAN.
Some points from your slides:
* 15 years old
What do you mean by that? Perl is 18 years old. C is even older.
G::L is actively maintained, which I think is more important.
* too flexible
Interesting point. I think G::L follows Perl in TIMTOWTDI.
Most flexibility has been added on user request.
* lacks predictable behaviour
I fail to see your point here. Options are handled from left to
right, which makes perfect sense.
* wants a 2 stage approach
* wants to deal with an API
This is provided by the OO API of G::L.
Besides, a single function is also an API.
* not super-configurable
Wow! Ain't this begging for a simple 2-line wrapper module around
G:L instead of re-inventing the wheel?
* Getopt::Modern features
Again, I think a simple wrapper around G::L will do the job.
* Arguments in bundles never looked right anyway
I think this is where the personal / religious feelings kick in.
* users do not (and should not have to) understand the programmer's
problems
I fail to see your point. Can you elaborate?
* multi-pass support
I think this is possibly the only real improvement to G::L.
Personally, I doubt wheter this validates yet another Getopt:: module
(unless you have fun writing it, which is important as well!)
As I said, option handling is a very personal and almost a religious
thing. There has never been a decent agreed upon standard how command
line options should be processed, although XPG and GNU did some
serious attempts. Getopt::Long tries to fulfill the Perl pragma
"making easy things easy, and hard things possible".
So, again, as I said, I would be very interested to know what exactly
your problems with G::L are.
Regards,
Johan