Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Contact Us
Online Help
Domain Status
Man Pages

Virtual Servers

Topology Map

Server Agreement
Year 2038

USA Flag



Man Pages

Manual Reference Pages  -  TEXT::DIFF::HTML (3)

.ds Aq ’


Text::Diff::HTML - XHTML format for Text::Diff::Unified



    use Text::Diff;

    my $diff = diff "file1.txt", "file2.txt", { STYLE => Text::Diff::HTML };
    my $diff = diff \$string1,   \$string2,   { STYLE => Text::Diff::HTML };
    my $diff = diff \*FH1,       \*FH2,       { STYLE => Text::Diff::HTML };
    my $diff = diff \&reader1,   \&reader2,   { STYLE => Text::Diff::HTML };
    my $diff = diff \@records1,  \@records2,  { STYLE => Text::Diff::HTML };
    my $diff = diff \@records1,  "file.txt",  { STYLE => Text::Diff::HTML };


This class subclasses Text::Diff::Unified, a formatting class provided by the Text::Diff module, to add XHTML markup to the unified diff format. For details on the interface of the diff() function, see the Text::Diff documentation.

In the XHTML formatted by this module, the contents of the diff returned by diff() are wrapped in a <div> element, as is each hunk of the diff. Within each hunk, all content is properly HTML encoded using HTML::Entities, and the various sections of the diff are marked up with the appropriate XHTML elements. The elements used are as follows:
o <div class="file">

This element contains the entire contents of the diff file returned by diff(). All of the following elements are subsumed by this one.
o <span class="fileheader">

The header section for the files being diffed, usually something like:

  --- in.txt    Thu Sep  1 12:51:03 2005
  +++ out.txt   Thu Sep  1 12:52:12 2005

This element immediately follows the opening file <div> element.

o <div class="hunk">

This element contains a single diff hunk. Each hunk may contain the following elements:
o <span class="hunkheader">

Header for a diff hunk. The hunk header is usually something like:

  @@ -1,5 +1,7 @@

This element immediately follows the opening hunk <div> element.

o <span class="ctx">

Context around the important part of a diff hunk. These are contents that have not changed between the files being diffed.

o <ins>

Inserted content, each line starting with +.

o <del>

Deleted content, each line starting with -.

o <span class="hunkfooter">

The footer section of a hunk; contains no contents.

o <span class="filefooter">

The footer section of a file; contains no contents.

You may do whatever you like with these elements and classes; I highly recommend that you style them using CSS. You’ll find an example CSS file in the eg directory in the Text-Diff-HTML distribution. You will also likely want to wrap the output of your diff in its own element (a <div> will do) styled with white-space: pre.

See Also



This module is stored in an open GitHub repository <>. Feel free to fork and contribute!

Please file bug reports via GitHub Issues <> or by sending mail to <>.


David E. Wheeler <>

Copyright and License

Copyright (c) 2005-2011 David E. Wheeler. Some Rights Reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

Search for    or go to Top of page |  Section 3 |  Main Index

perl v5.20.3 TEXT::DIFF::HTML (3) 2016-04-03

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.