Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

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
+t>\n"},
});

__END__
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:
We
start.
<font color=red>Let's</font>
<font color=red>begin.</font>
This
is
the
<font color=red>old</font>
<font color=green>new</font>
text.
<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>
Then
we
end.
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
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?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (9)
As of 2014-09-02 22:40 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite cookbook is:










    Results (32 votes), past polls