CPAN::Checksums - Write a "CHECKSUMS" file for a
    directory as on CPAN
  use CPAN::Checksums qw(updatedir);
  my $success = updatedir($directory, $root);
Since version 1.0 the generation of the attribute
    "shortname" is turned off by default. It
    was too slow and was not used as far as I know, and above all, it could fail
    on large directories. The shortname feature can still be turned on by
    setting the global variable $TRY_SHORTNAME to a true
    value.
  - $success = updatedir($dir[, $root])
 
  - $dir is a directory. Updatedir() writes a
      "CHECKSUMS" file into that directory,
      unless a previously written "CHECKSUMS"
      file is there that is still valid. Returns 2 if a new
      "CHECKSUMS" file has been written, 1 if
      a valid "CHECKSUMS" file is already
      there, otherwise dies.
    
If $root is given, the hash entry with
        the key "cpan_path" is relative to
        this root directory.
    Note: since version 2.0 updatedir on empty directories behaves
        just the same. In older versions it silently did nothing.
   
  - $IGNORE_MATCH
 
  - If the global variable $IGNORE_MATCH is set, then
      all files matching this expression will be completely ignored and will not
      be included in the CPAN "CHECKSUMS"
      files. Per default this variable is set to
    
    
    qr{(?i-xsm:readme$)}
    
   
  - $CAUTION
 
  - Setting the global variable $CAUTION causes
      updatedir() to report changes of files in the attributes
      "size",
      "mtime",
      "md5", or
      "md5-ungz" to STDERR.
 
  - $TRY_SHORTNAME
 
  - By setting the global variable $TRY_SHORTNAME to a
      true value, you can tell updatedir() to include an attribute
      "shortname" in the resulting hash that
      is 8.3-compatible. Please note, that updatedir() in this case may
      be slow and may even fail on large directories, because it will always
      only try 1000 iterations to find a name that is not yet taken and then
      give up.
 
  - $SIGNING_KEY
 
  - Setting the global variable $SIGNING_KEY makes the
      generated "CHECKSUMS" file to be
      clear-signed by the command specified in
      $SIGNING_PROGRAM (defaults to
      "gpg --clearsign --default-key "),
      passing the signing key as an extra argument. The resulting
      "CHECKSUMS" file should look like:
    
    
    0&&<<''; # this PGP-signed message is also valid perl
    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA1
    # CHECKSUMS file written on ... by CPAN::Checksums (v...)
    $cksum = {
        ...
    };
    __END__
    -----BEGIN PGP SIGNATURE-----
    ...
    -----END PGP SIGNATURE-----
    
    note that the actual data remains intact, but two extra lines
        are added to make it legal for both OpenPGP and perl syntax.
   
  - $MIN_MTIME_CHECKSUMS
 
  - If the global variable $MIN_MTIME_CHECKSUMS is
      set, then updatedir will renew signatures on checksum files that have an
      older mtime than the given value.
 
DirHandle, IO::File, Digest::MD5, Digest::SHA, Compress::Bzip2,
    Compress::Zlib, File::Spec, Data::Dumper, Data::Compare, File::Temp
If updatedir is interrupted, it may leave a temporary file lying
    around. These files have the File::Temp template
    "CHECKSUMS.XXXX" and should be harvested
    by a cronjob.
Andreas Koenig, andreas.koenig@anima.de; GnuPG support by Autrijus
    Tang
Copyright (c) 2002-2008 Andreas Koenig, Audrey Tang, Steve
  Peters.
This program is free software; you can redistribute it and/or
    modify it under the same terms as Perl itself.