#!/usr/bin/perl use strict; use warnings; use B2B::BGZF::Reader; use Digest::MD5; use Digest::Perl::MD5; my ($fn_compressed, $fn_uncompressed) = @ARGV; # open filehandle to compressed data my $fh_c = B2B::BGZF::Reader->new_filehandle( $fn_compressed ) or die "failed to open compressed file"; # open filehandle to uncompressed data open my $fh_u, '<:raw', $fn_uncompressed or die "failed to open uncompressed file"; # compare pure-Perl vs XS behavior for my $class (qw/ Digest::Perl::MD5 Digest::MD5 /) { seek $fh_c, 0, 0; seek $fh_u, 0, 0; my $md5_c = $class->new()->addfile($fh_c)->hexdigest; my $md5_u = $class->new()->addfile($fh_u)->hexdigest; print "Compressed v Uncompressed ($class):\n"; print "\t$md5_c\n"; print "\t$md5_u\n"; }