如何比较两个文件并显示Perl中的差异?

Gra*_*ace 1 perl diff file

我正在尝试编写Perl脚本来比较2个文件的内容,以便列出所看到的任何差异.尝试以下但我不确定如何继续下去.请注意,以下只是脚本的一部分,因为我事先已对2个文件的内容进行了排序.提前致谢.

open (FILE1, "log") || die ("Can't open file log for reading") ;
open (FILE2, "master") || die ("Can't open file master for reading") ;

@file1 = <FILE1> ;
@file2 = <FILE2> ;

#$perlcompare = (compare('log','master')== 0) ;
#die ("Log and master files are equal and match.\n") ;

if (@file1 eq @file2) {

print "Log and master are equal and match.\n" ;
} else  ????????????

exit 0;
Run Code Online (Sandbox Code Playgroud)

Sin*_*nür 5

如果你需要留在Perl中,可以使用File :: Compare来比较这些文件.

为了显示差异,有Text :: Diff.

C:\Temp> cat file1
1
2
3
4
5
C:\Temp> cat file2
1
2
3
5
#!/usr/bin/env perl

use strict; use warnings;

use Text::Diff;

my $diffs = diff 'file1' => 'file2';

print $diffs;
Run Code Online (Sandbox Code Playgroud)

产量

C:\Temp> t
--- file1       Fri Nov 18 00:01:40 2011
+++ file2       Fri Nov 18 00:01:49 2011
@@ -1,5 +1,4 @@
 1
 2
 3
-4
+5
-5