› perl -c pm-11102847.pl
Global symbol "$co" requires explicit package name (did you forget to
+declare "my $co"?) at pm-11102847.pl line 21.
You're making so many mistakes because you write so much code. Less code results in less bugs.
I would write no code at all and just use cmp from Gnu diffutils, but if you have to to do in Perl:
use File::Compare qw(compare);
my $r = compare 'filename1', 'filename2';
if ($r == 0) {
print 'same';
} elsif ($r == 1) {
print 'different';
} else {
die "error in comparison: $!";
}
… but if you
have to to use non-core modules:
use Digest::MD5 qw(md5);
use File::Slurper qw(read_binary);
if (md5(read_binary('filename1')) eq md5(read_binary('filename2'))) {
print 'same';
} else {
print 'different';
}