Digest::MD5::File

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
File(3)		     User Contributed Perl Documentation	      File(3)



NAME
       Digest::MD5::File - Perl extension for getting MD5 sums for files and
       urls.

SYNOPSIS
	   use Digest::MD5::File qw(dir_md5_hex file_md5_hex url_md5_hex);

	   my $md5 = Digest::Md5->new;
	   $md5->addpath(’/path/to/file’);
	   my $digest = $md5->hexdigest;

	   my $digest = file_md5($file);
	   my $digest = file_md5_hex($file);
	   my $digest = file_md5_base64($file);

	   my $md5 = Digest::Md5->new;
	   $md5->addurl(’http://www.tmbg.com/tour.html’);
	   my $digest = $md5->hexdigest;

	   my $digest = url_md5($url);
	   my $digest = url_md5_hex($url);
	   my $digest = url_md5_base64($url);

	   my $md5 = Digest::Md5->new;
	   $md5->adddir(’/directory’);
	   my $digest = $md5->hexdigest;

	   my $dir_hashref = dir_md5($dir);
	   my $dir_hashref = dir_md5_hex($dir);
	   my $dir_hashref = dir_md5_base64($dir);

DESCRIPTION
	 Get MD5 sums for files of a given path or content of a given url.

EXPORT
       None by default.	 You can export any file_* dir_*, or url_* function
       and anything Digest::MD5 can export.

	  use Digest::MD5::File qw(md5 md5_hex md5_base64); # 3 Digest::MD5 functions
	  print md5_hex(’abc123’), "\n";
	  print md5_base64(’abc123’), "\n";

OBJECT METHODS
       addpath()

	   my $md5 = Digest::Md5->new;
	   $md5->addpath(’/path/to/file.txt’)
	       or die "file.txt is not where you said: $!";

       or you can add multiple files by specifying an array ref of files:

	   $md5->addpath(\@files);

       adddir()

       addpath()s each file in a directory recursively. Follows the same
       rules as the dir_* functions.

	   my $md5 = Digest::Md5->new;
	   $md5->adddir(’/home/tmbg/’)
	       or die "See warning above to see why I bailed: $!";

       addurl()

	   my $md5 = Digest::Md5->new;
	   $md5->addurl(’http://www.tmbg.com/tour.html’)
	       or die "They Must Be not on tour";

file_* functions
       Get the digest in variouse formats of $file.  If file does not exist
       or is a directory it croaks (See NOFATALS for more info)

	   my $digest = file_md5($file) or warn "$file failed: $!";
	   my $digest = file_md5_hex($file) or warn "$file failed: $!";
	   my $digest = file_md5_base64($file) or warn "$file failed: $!";

dir_* functions
       Returns a hashref whose keys are files relative to the given path and
       the values are the MD5 sum of the file or and empty string if a direc-
       tory.  It recurses through the entire depth of the directory.  Sym-
       links to files are just addpath()d and symlinks to directories are
       followed.

	   my $dir_hashref = dir_md5($dir) or warn "$dir failed: $!";
	   my $dir_hashref = dir_md5_hex($dir) or warn "$dir failed: $!";
	   my $dir_hashref = dir_md5_base64($dir) or warn "$dir failed: $!";

url_* functions
       Get the digest in various formats of the content at $url (Including,
       if $url points to directory, the directory listing content).  Returns
       undef if url fails (IE if LWP::UserAgent’s $res->is_success is false)

	   my $digest = url_md5($url) or warn "$url failed";
	   my $digest = url_md5_hex($url) or warn "$url failed";
	   my $digest = url_md5_base64($url) or warn "$url failed";

SPECIAL SETTINGS
       BINMODE

       By default files are opened in binmode. If you do not want to do this
       you can unset it a variety of ways:

	   use Digest::MD5::File qw(-nobin);

       or

	   $Digest::MD5::File::BINMODE = 0;

       or at the function/method level by specifying its value as the second
       argument:

	   $md5->addpath($file,0);

	   my $digest = file_md5_hex($file,0);

       UTF8

       In some cases you may want to have your data utf8 encoded, you can do
       this the following ways:

	   use Digest::MD5::File qw(-utf8);

       or

	   $Digest::MD5::File::UTF8 = 1;

       or at the function/method level by specifying its value as the third
       argument for files and second for urls:

	   $md5->addpath($file,$binmode,1);

	   my $digest = file_md5_hex($file,$binmode,1);

	   $md5->addurl($url,1);

	   url_md5_hex($url,1);

       It use’s Encode’s encode_utf8() function to do the encoding. So if you
       do not have Encode (pre 5.7.3) this won’t work :)

       NOFATALS

       Instead of croaking it will return undef if you set NOFATALS to true.

       You can do this two ways:

	   $Digest::MD5::File::NOFATALS = 1;

       or the -nofatals flag:

	   use Digest::MD5::File qw(-nofatals);

	   my $digest = file_md5_hex($file) or die "$file failed";

       $! is not set so its not really helpful if you die().

SEE ALSO
       Digest::MD5, Encode, LWP::UserAgent

AUTHOR
       Daniel Muey, <http://drmuey.com/cpan_contact.pl>

COPYRIGHT AND LICENSE
       Copyright 2005 by Daniel Muey

       This library is free software; you can redistribute it and/or modify
       it under the same terms as Perl itself.



perl v5.8.8			  2008-07-24			      File(3)