Alt-Digest-MD5-OpenSSL

 view release on metacpan or  search on metacpan

t/original/files.t  view on Meta::CPAN

        print "$file: md5_base64() failed\n";
        $failed++;
    }

    if (Digest::MD5->new->add($data)->digest ne $md5bin) {
        print "$file: MD5->new->add(...)->digest failed\n";
        $failed++;
    }
    if (Digest::MD5->new->add($data)->hexdigest ne $md5hex) {
        print "$file: MD5->new->add(...)->hexdigest failed\n";
        $failed++;
    }
    if ($B64 && Digest::MD5->new->add($data)->b64digest ne $md5b64) {
        print "$file: MD5->new->add(...)->b64digest failed\n";
        $failed++;
    }

    my @data = split //, $data;
    if (md5(@data) ne $md5bin) {
        print "$file: md5(\@data) failed\n";
        $failed++;
    }
    if (Digest::MD5->new->add(@data)->digest ne $md5bin) {
        print "$file: MD5->new->add(\@data)->digest failed\n";
        $failed++;
    }
    my $md5 = Digest::MD5->new;
    for (@data) {
        $md5->add($_);
    }
    if ($md5->digest ne $md5bin) {
        print "$file: $md5->add()-loop failed\n";
        $failed++;
    }

    print "not " if $failed;
    print "ok ", ++$testno, "\n";
}


sub digest_file
{
    my($file, $method) = @_;
    $method ||= "digest";
    #print "$file $method\n";

    open(FILE, $file) or die "Can't open $file: $!";
    my $digest = Digest::MD5->new->addfile(*FILE)->$method();
    close(FILE);

    $digest;
}

sub cat_file
{
    my($file) = @_;
    local $/;  # slurp
    open(FILE, $file) or die "Can't open $file: $!";

    # For PerlIO in case of UTF-8 locales.
    eval 'binmode(FILE, ":bytes")' if $] >= 5.008;

    my $tmp = <FILE>;
    close(FILE);
    $tmp;
}



( run in 2.689 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )