Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses

Showing differences between two sequences

by merlyn (Sage)
on Sep 15, 2000 at 22:58 UTC ( #32718=snippet: print w/ replies, xml ) Need Help??

Description: Use Algorithm::Diff to show the differences as color-coded HTML between two text sequences.
use Algorithm::Diff qw(traverse_sequences);

my ($old, $new) = split /\n--\n/, join "", <DATA>; # get strings

$_ = [split /\s+/, $_] for ($old, $new); # turn them into arrayrefs

traverse_sequences($old, $new, {
  MATCH => sub { print "$old->[shift]\n"},
  DISCARD_A => sub { print "<font color=red>$old->[shift]</font>\n"},
  DISCARD_B => sub { print "<font color=green>$new->[shift,shift]</fon

We start. Let's begin. This is the old text. Then we end.
We start. This is the new text.  And here's some stuff I added. Then w
+e end.

which produces:
<font color=red>Let's</font>
<font color=red>begin.</font>
<font color=red>old</font>
<font color=green>new</font>
<font color=green>And</font>
<font color=green>here's</font>
<font color=green>some</font>
<font color=green>stuff</font>
<font color=green>I</font>
<font color=green>added.</font>
which results in:
We start. Let's begin. This is the old new text. And here's some stuff I added. Then we end.
Comment on Showing differences between two sequences
Select or Download Code
Replies are listed 'Best First'.
Beware Web Colors!
by chromatic (Archbishop) on Mar 03, 2002 at 18:17 UTC
    Sorry to raise the dead here, but one thing bears repeating. Since a large percentage (25%) of men are red-green colorblind, it's better to pick two highly different colors. I have to read the original and the modified lines to figure out what's changed -- both "change" colors look nearly the same to me.

    Update: I confused the incidence statistic with the inheritance probability. Read a good description of genetics and recessive traits to find out what I was thinking.

      While I agree that colorblindness is important (particularly for you), you are overstating the incidence rates by a factor of 3.

      A good description of the design problem and solutions may be found here.

Back to Snippets Section

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: snippet [id://32718]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (5)
As of 2016-02-11 05:07 GMT
Find Nodes?
    Voting Booth?

    How many photographs, souvenirs, artworks, trophies or other decorative objects are displayed in your home?

    Results (359 votes), past polls