diff options
author | Karl Berry <karl@freefriends.org> | 2012-11-20 18:08:54 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2012-11-20 18:08:54 +0000 |
commit | c5add2ea5067382269ae6f19e345fda0b9a7bd21 (patch) | |
tree | 02f512fda46d93079c9dc59c0d76f0e398150f83 /Master/tlpkg/tlperl/lib/Digest.pm | |
parent | 6c35e87bdc5a3f64833dbbc42e7d42e683db9d5b (diff) |
perl 5.16.2, compiled without optimization for Windows (from siep)
git-svn-id: svn://tug.org/texlive/trunk@28315 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/tlperl/lib/Digest.pm')
-rw-r--r-- | Master/tlpkg/tlperl/lib/Digest.pm | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/Master/tlpkg/tlperl/lib/Digest.pm b/Master/tlpkg/tlperl/lib/Digest.pm index 384dfc82668..c3355a8bd44 100644 --- a/Master/tlpkg/tlperl/lib/Digest.pm +++ b/Master/tlpkg/tlperl/lib/Digest.pm @@ -3,7 +3,7 @@ package Digest; use strict; use vars qw($VERSION %MMAP $AUTOLOAD); -$VERSION = "1.16"; +$VERSION = "1.17"; %MMAP = ( "SHA-1" => [["Digest::SHA", 1], "Digest::SHA1", ["Digest::SHA2", 1]], @@ -16,7 +16,7 @@ $VERSION = "1.16"; "CRC-16" => [["Digest::CRC", type => "crc16"]], "CRC-32" => [["Digest::CRC", type => "crc32"]], "CRC-CCITT" => [["Digest::CRC", type => "crcccitt"]], - "RIPEMD-160" => "Crypt::PIPEMD160", + "RIPEMD-160" => "Crypt::RIPEMD160", ); sub new @@ -24,24 +24,27 @@ sub new shift; # class ignored my $algorithm = shift; my $impl = $MMAP{$algorithm} || do { - $algorithm =~ s/\W+//; - "Digest::$algorithm"; + $algorithm =~ s/\W+//g; + "Digest::$algorithm"; }; $impl = [$impl] unless ref($impl); + local $@; # don't clobber it for our caller my $err; for (@$impl) { - my $class = $_; - my @args; - ($class, @args) = @$class if ref($class); - no strict 'refs'; - unless (exists ${"$class\::"}{"VERSION"}) { - eval "require $class"; - if ($@) { - $err ||= $@; - next; - } - } - return $class->new(@args, @_); + my $class = $_; + my @args; + ($class, @args) = @$class if ref($class); + no strict 'refs'; + unless (exists ${"$class\::"}{"VERSION"}) { + my $pm_file = $class . ".pm"; + $pm_file =~ s{::}{/}g; + eval { require $pm_file }; + if ($@) { + $err ||= $@; + next; + } + } + return $class->new(@args, @_); } die $err; } |