File::Compare
use File::Compare; printf "fileA and fileB are %s.\n", compare("fileA","fileB") ? "different" : "identical"; use File::Compare 'cmp'; sub munge($) { my $line = $_[0]; for ($line) { s/^\s+//; # Trim leading whitespace. s/\s+$//; # Trim trailing whitespace. } return uc($line); } if (not cmp("fileA", "fileB", sub {munge $_[0] eq munge $_[1]} ) { print "fileA and fileB are kinda the same.\n"; }
The File::Compare
module provides one
function, compare
, which compares the contents of
the two files passed to it. It returns 0
if the
files contain the same data, 1
if they contain
different data, and -1
if an error was encountered
in accessing the named files. If you pass a subroutine reference as
the third argument, that function is repeatedly called to determine
whether any two lines are equivalent. For compatibility with the
cmp (1) program, you may explicitly
import the function as cmp
. (This does not affect
the binary cmp
operator.)
Get Programming Perl, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.