1package Digest::MD5::M4p; 2 3use strict; 4use warnings; 5use vars qw($VERSION @ISA @EXPORT_OK); 6$VERSION = '0.01'; 7 8require Exporter; 9*import = \&Exporter::import; 10@EXPORT_OK = qw(md5 md5_hex md5_base64); 11 12require DynaLoader; 13@ISA=qw(DynaLoader); 14 15eval { 16 require Digest::base; 17 push(@ISA, 'Digest::base'); 18}; 19if ($@) { 20 my $err = $@; 21 *add_bits = sub { die $err }; 22} 23 24 25eval { 26 Digest::MD5::M4p->bootstrap($VERSION); 27}; 28if ($@) { 29 my $olderr = $@; 30 eval { 31 # Try to load the pure perl version which does not exist so far 32 require Digest::Perl::MD5::M4p; 33 34 Digest::Perl::MD5::M4p->import(qw(md5 md5_hex md5_base64)); 35 push(@ISA, "Digest::Perl::MD5"); # make OO interface work 36 }; 37 if ($@) { 38 # restore the original error 39 die $olderr; 40 } 41} 42else { 43 *reset = \&new; 44} 45 461; 47__END__ 48 49=head1 NAME 50 51Digest::MD5::M4p - Perl interface to a variant of the MD5 algorithm 52 53=head1 SYNOPSIS 54 55 See Digest::MD5. 56 57=head1 AUTHORS 58 59The original C<MD5> interface was written by Neil Winton 60(C<N.Winton@axion.bt.co.uk>). 61 62The current C<Digest::MD5> module was written by Gisle Aas <gisle@ActiveState.com>. 63 64Only minor hacks are required for this !! incompatible !! version. 65 66=cut 67