#!perl use 5.14.0; use strict; use warnings; use Carp; use Data::Dumper; use Digest::MD5; use File::Compare (qw| compare |); use File::Temp qw( tempfile ); use Test::More tests => 1; my $basic = 'x' x 10**2; my @digests; my ($fh1, $t1) = tempfile(); binmode $fh1, ':raw'; for (1..100) { say $fh1 $basic } close $fh1 or croak "Unable to close $t1 after writing"; push @digests, hexdigest_one_file($t1); diag "$t1: $digests[0]"; my $t3 = File::Temp->new( UNLINK => 0); binmode $t3, ':crlf'; for (1..100) { say $t3 $basic } close $t3 or croak "Unable to close $t3 after writing"; push @digests, hexdigest_one_file($t3); diag "$t3: $digests[1]"; is $digests[0], $digests[1]; sub hexdigest_one_file { my $filename = shift; say "Filename: $filename"; #open my $FH, '<', $filename or croak "Unable to open $filename for reading"; #print for <$FH>; #close $FH; my $state = Digest::MD5->new(); open my $FH, '<:raw', $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; }