Text::Diff3::DiffHeckel 0.06 review

Download
by rbytes.net on

Text::Diff3::DiffHeckel is a two-way diff plug-in. SYNOPSIS use Text::Diff3; my $f = Text::Diff3::Factory->new; my $p =

License: Perl Artistic License
File size: 11K
Developer: MIZUTANI Tociyuki
0 stars award from rbytes.net

Text::Diff3::DiffHeckel is a two-way diff plug-in.

SYNOPSIS

use Text::Diff3;
my $f = Text::Diff3::Factory->new;
my $p = $f->create_diff;
my $mytext = $f->create_text([ map{chomp;$_} < F0 > ]);
my $original = $f->create_text([ map{chomp;$_} < F1 > ]);
my $diff2 = $p->diff( $origial, $mytext );
$diff2->each(sub{
my( $r ) = @_;
print $r->as_string, "n";
if ( $r->type ne 'd' ) {
print '-', $original->as_string_at( $_ ) for $r->rangeB;
}
if ( $r->type ne 'a' ) {
print '+', $mytext->as_string_at( $_ ) for $r->rangeA;
}
});

ABSTRACT

This is a package for Text::Diff3 to compute difference sets between two text buffers based on the P. Heckel's algorithm. Anyone may change this to an another diff or a its wrapper module by a your custom Factory instance.

Text::Diff3 needs a support of computing difference sets between two text buffers (diff). As the diff(1) command, the required diff module creates a list of tipples recorded an information set of a change type (such as a, c, or d) and a range of line numbers between two text buffers.

Since there are several algorithms and their implementations for the diff computation, Text::Diff3 makes a plan independent on any specific diff routine. It calls a pluggable diff processor instance specified in a factory commonly used in Text::Diff3. Anyone may change diff plug-in according to text properties.

For users convenience, Text::Diff3 includes small diff based on the P. Heckel's algorithm. On the other hands, many other systems use the popular Least Common Sequence (LCS) algorithm. The merits for each algorithm are case by case. In author's experience, two algorithms generate almost same results for small local changes in the text. In some cases, such as moving blocks of lines, it happened quite differences in results.Text::Diff3::DiffHeckel is a two-way diff plug-in.

Requirements:
Perl

Text::Diff3::DiffHeckel 0.06 keywords