8.22. Comparing the Contents of Two Files8.22.2. SolutionUse the standard File::Compare module with filenames, typeglobs, or any indirect filehandles:
8.22.3. DiscussionThe File::Compare module (standard as of v5.8 and available on CPAN if you have an earlier version of Perl) compares two files for equality. The compare function, exported by default, returns 0 when the files are equal, 1 when they differ, and -1 when any error occurs during reading. To compare more than two filehandles, simply loop, comparing two at a time:
If you want details of exactly how two files differ, use the Text::Diff module from CPAN:
In addition to filehandles, diff can also take filenames, strings, and even arrays of records. Pass a hash of options as the third argument. The STYLE option controls the type of output returned; it can be "Unified" (the default), "Context", or "OldStyle". You can even write your own class for custom diff formats. The value returned by diff is a string similar to the output of the diff(1) program. This string is in valid diff format, suitable for feeding into patch(1). Although Text::Diff will not always produce the same output as GNU diff, byte for byte, its diffs are nevertheless correct. 8.22.4. See AlsoThe documentation for the standard File::Compare module; the documentation for the CPAN module Text::Diff; the diff(1) and patch(1) manpages.
Copyright © 2003 O'Reilly & Associates. All rights reserved. |
|