open(my $fh1, '<', $file1) or die $!; binmode($fh1); open(my $fh2, '<', $file2) or die $!; binmode($fh2); local $/ = \(64*1024); # Tweak as desired. for (;;) { my $blk1 = <$fh1>; my $blk2 = <$fh2>; last if !defined($blk1) && !defined($blk2); die("diff\n") if !defined($blk1) || !defined($blk2) || $blk1 ne $blk2; }