#!/usr/bin/perl -w

use warnings;
use strict;

open IN1, "< $ARGV[0]";
open IN2, "< $ARGV[1]";
open OUT, "> $ARGV[2]";

my ($agree, $disagree, $in1count, $in2count, $null   ) =
   (0,      0,         0,         0,         pack "x");

while (!eof(IN1) and !eof(IN2)) {
	my ($in1, $in2);
	read IN1, $in1, 1;
	read IN2, $in2, 1;
	if ($in1 eq $in2) {
		$agree++;
		print OUT $in1;
	} elsif ($in1 eq $null) {
		$in2count++;
		print OUT $in2;
	} elsif ($in2 eq $null) {
		$in1count++;
		print OUT $in1;
	} else {
		$disagree++;
		print OUT $in1;
	}
}

while (!eof(IN1)) { my $x; read IN1, $x, 1; print OUT $x; }
while (!eof(IN2)) { my $x; read IN2, $x, 1; print OUT $x; }

close IN1;
close IN2;
close OUT;

print "$agree bytes in agreement
$in1count bytes from $ARGV[0]
$in2count bytes from $ARGV[1]
$disagree bytes did not agree
";

