#!perl use 5.14.0; use warnings; use Carp; use Data::Dumper; use Digest::MD5; use File::Compare (qw| compare |); use File::Temp qw( tempfile ); use Test::More; my $basic = 'x' x 10**2; my @digests; my ($fh1, $t1) = tempfile(); for (1..100) { say $fh1 $basic } close $fh1 or croak "Unable to close $t1 after writing"; push @digests, hexdigest_one_file($t1); my ($fh2, $t2) = tempfile(); for (1..100) { say $fh2 $basic } close $fh2 or croak "Unable to close $t2 after writing"; push @digests, hexdigest_one_file($t2); say Dumper [ @digests ]; cmp_ok($digests[0], 'eq', $digests[1], "Same md5_hex for $t1 and $t2"); is(compare($t1, $t2), 0, "compare() indicates no differences between $t1 and $t2"); done_testing(); sub hexdigest_one_file { my $filename = shift; say "Filename: $filename"; my $state = Digest::MD5->new(); open my $FH, '<', $filename or croak "Unable to open $filename for reading"; $state->addfile($FH); close $FH or croak "Unable to close $filename after reading"; return $state->hexdigest; }