( I directed this to comp.lang.perl.modules as well as p5p, until I here where the 'appropriate' place to discuss this would be) I'd like to start a discussion on what the best way to use VERSION numbers numbers that are generated from RCS or CVS Revision numbers and how get CPAN to compare them better. (the problem seems to arise when the new revision number has more digits than the earlier version). perldoc perlmod suggests the following example $VERSION = do { my @r = (q$Revision: 2.21 $ =~ /\d+/g); sprintf " %d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker This might fix the problem that I am seeing from /usr/local/bin/perl -e 'use CPAN; CPAN::Shell->r;' where /usr/local/bin/perl -e 'use CPAN; CPAN::Shell->r;' Package namespace installed latest in CPAN file DBI::DBD 10.10 10.9 T/TI/TIMB/DBI-1.18.tar.gz by converting the 10.9 to 10.09, but it doesn't fix the case when the version is bumped from 10.99 to 10.100. The problem of changing the number of digits in the version string still exists. I am also surprised that perlmod suggest only 2 digits, but some of the code in CPAN seem to suggest 3 digit version numbers. (perlmodlib suggests "at least two digits", and to not use a "1.3.2" style version. Exporter also suggests using versions numbers with at least 2 decimal places if you use the default require_version) I looked into ExtUtils::MM_Unix::parse_version (pulled in from ExtUtils::MakeMaker) as well as CPAN::Version::vcmp, CPAN::Version::vgt, # vgt says "v10.10" > "v10.9, and v10.10 > v10.9 CPAN::Version::vstring, # I like how vstring uses pack "U*", split /\./, $n; # to extract a version number "v10.9" in a string # into a v10.9 unicode character v-number. It looks like CPAN's CPAN::Shell->r would handle "v10.9" and "v10.10" and not report that version 10.9 was newer that version 10.10, but just how far should a module author have to go. I'm not sure how compatible this would be with the Exporter module. Also, while CPAN goes to the trouble to deal with version strings beginning with "v", Exporter::require_version only does a numeric conversion. I'd like to here thoughts on how this inconsistency could be resolved, and again, how to work best with VERSION strings that are derived from RCS/CVS Revisions numbers. Thanks, David DyckThread Next