You've already determined the root cause of the problem was that you weren't closing the files before you were comparing them. But for future reference, there's the cmp utility.
Believe it or not, there's a special case of two same text files for which diff will report no differences, but cmp will report a difference at the very first byte. Wanna know what it is? :-)
UPDATE: It's not made explicitly clear in perldoc File::Compare, but this core module implements the Unix cmp(1) functionality in Perl. This is stated in the README file.