#!/usr/bin/perl -w use strict; my ($a, $b) = @ARGV; undef $/; open(A, $a) or die "cannot open $a: $!"; open(B, $b) or die "cannot open $b: $!"; my $ac = ; my $bc = ; my $al = length $ac; if ($al != length $bc) { print "$a and $b have different lengths\n"; } elsif ($al) { my $errs = 0; my $num_okay = 0; my $min_num_okay; for (my $i = 0; $i < $al; $i++) { if (substr($ac, $i, 1) ne substr($bc, $i, 1)) { ++$errs; $min_num_okay = $num_okay; $num_okay = 0; } else { ++$num_okay; } } print "$a and $b have $errs differences (", $errs / $al, ")\n"; if (defined $min_num_okay) { print "with at least $min_num_okay correct chars between each\n"; } } else { print "$a and $b are empty\n"; }