Algorithm-Diff
view release on metacpan or search on metacpan
my (@f1, @f2);
chomp(@f1 = <F1>);
close F1;
chomp(@f2 = <F2>);
close F2;
# diff yields lots of pieces, each of which is basically a Block object
my $diffs = diff(\@f1, \@f2);
exit 0 unless @$diffs;
my $st = stat($file1);
print "$char1 $file1\t", scalar localtime($st->mtime), "\n";
$st = stat($file2);
print "$char2 $file2\t", scalar localtime($st->mtime), "\n";
my ($hunk,$oldhunk);
# Loop over hunks. If a hunk overlaps with the last hunk, join them.
# Otherwise, print out the old one.
foreach my $piece (@$diffs) {
$hunk = new Hunk ($piece, $Context_Lines);
next unless $oldhunk;
if ($hunk->does_overlap($oldhunk)) {
# diff yields lots of pieces, each of which is basically a Block object
my $diffs = diff(\@f1, \@f2, $compareRoutineRef);
exit 0 unless @$diffs;
if ($opt_q and @$diffs) {
print "Files $file1 and $file2 differ\n";
exit 1;
}
if ($Diff_Type =~ /UNIFIED|CONTEXT/) {
my @st = stat($file1);
my $MTIME = 9;
print "$char1 $file1\t", scalar localtime($st[$MTIME]), "\n";
@st = stat($file2);
print "$char2 $file2\t", scalar localtime($st[$MTIME]), "\n";
}
my ($hunk,$oldhunk);
# Loop over hunks. If a hunk overlaps with the last hunk, join them.
# Otherwise, print out the old one.
foreach my $piece (@$diffs) {
$hunk = new Hunk ($piece, $Context_Lines);
next unless $oldhunk; # first time through
( run in 0.912 second using v1.01-cache-2.11-cpan-49f99fa48dc )