http://www.cpan.org/modules/00modlist.long.html

2.9 Give the module a version/issue/release number.

To be fully compatible with the Exporter and MakeMaker modules you
should store your module's version number in a non-my package
variable called $VERSION. This should be a valid floating point
number with at least two digits after the decimal (ie hundredths,
e.g, $VERSION = "0.01"). See Exporter.pm for details.

Don't use a "1.3.2" style version directly. If you use RCS or a
similar system which supports multilevel versions/branches you can
use this (but put it all on one line for MakeMaker VERSION_FROM):

$VERSION = do { my @r=(q$Revision: 3.104 $=~/\d+/g); sprintf "%d."."%02d"x$#r,@r };

It may be handy to add a function or method to retrieve the
number. Use the number in announcements and archive file names when
releasing the module (ModuleName-1.02.tar.gz). See perldoc
ExtUtils::MakeMaker.pm for details.




----------------------------------------------------------------------
http://testers.cpan.org/

----------------------------------------------------------------------

http://www.cpan.org/modules/04pause.html

Other conventions you should know about

Do not upload the READMEs that are integrated in your distribution
files. PAUSE is designed to take care of unwrappig your file with tar
or zip, registering all the modules it finds in there, and placing
the readme file (i.e. a file with the name README in the top level
directory of your package) into your directory. PAUSE will change the
name of the file to package-name.readme. It should do so within a few
hours after your upload.

Please make sure all your *.pm files contain a $VERSION variable that
conforms to the CPAN rules, i.e. the complete computation of $VERSION
must take place on the one first line within the module that assigns
to it. You can test if this is the case by running

perl -MExtUtils::MakeMaker -le 'print MM->parse_version(shift)'
'file'

on the filenames in question. The CPAN indexer will run this code
within a Safe compartement.

The automatic integration of your work into several indexes and
directory trees is not always in accordance with what you desire. If
you want to prevent propagation to places outside of your directory,
simply choose a filename that matches /\d\.\d+_\d/, i.e. something
that looks like derived from a perl subversion number (maybe because
it is a perl subversion). PAUSE will leave such distributions
untouched: no readme will be extracted, no index will be updated, no
symlinks will be created.

Any distribution that arrives at PAUSE is checked for package names
contained in the distribution. A package name that arrives for the
first time is automatically assigned either to the author who
submitted it or to user perl if the distribution file is a perl
distribution. A package name that has already been used before must
be submitted by its author, otherwise PAUSE will trigger a warning to
the administrator. That way PAUSE will prevent accidental usage of a
package namespace by more than one author.

Be prepared that very soon after your upload your module will be
tested on dozens of architectures by the never tired
cpan-testers. This helpful lot will send their findings to their
mailing list and collect the results in a database. If they find
problems, they try to diagnose or even solve them and inform you
about their findings. So be prepared to get mail from them before you
have closed the buffer in your editor.

