The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

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

SYNOPSIS

  use Digest::MD5::File qw(file_md5 file_md5_hex file_md5_base64 url_md5 url_md5_hex url_md5_base64);

  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);
  

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_* 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");

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

  $md5->addpath(\@files);

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);
  my $digest = file_md5_hex($file);
  my $digest = file_md5_base64($file);

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.

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.