You are viewing the version of this documentation from Perl 5.28.1. View the latest version



File::Compare - Compare files or filehandles


  	use File::Compare;

	if (compare("file1","file2") == 0) {
	    print "They're equal\n";


The File::Compare::compare function compares the contents of two sources, each of which can be a file or a file handle. It is exported from File::Compare by default.

File::Compare::cmp is a synonym for File::Compare::compare. It is exported from File::Compare only by request.

File::Compare::compare_text does a line by line comparison of the two files. It stops as soon as a difference is detected. compare_text() accepts an optional third argument: This must be a CODE reference to a line comparison function, which returns 0 when both lines are considered equal. For example:

compare_text($file1, $file2)

is basically equivalent to

compare_text($file1, $file2, sub {$_[0] ne $_[1]} )


File::Compare::compare and its sibling functions return 0 if the files are equal, 1 if the files are unequal, or -1 if an error was encountered.


File::Compare was written by Nick Ing-Simmons. Its original documentation was written by Chip Salzenberg.