git風のdiffを作成する
http://search.cpan.org/~rkrimen/Diff-LibXDiff-0.05/lib/Diff/LibXDiff.pm
これが良かったよって話
以下のように使った。とりあえずで色もつけてみた。
use Diff::LibXDiff; my $diff = Diff::LibXDiff->diff( $old, $new ); # add color like a git $diff =~ s/^(-.*?)(?:\r)?$/<span style="color:#f00;">$1<\/span>\r/mg; $diff =~ s/^(\+.*?)(?:\r)?$/<span style="color:#099;">$1<\/span>\r/mg; # delete "\ No newline at end of file" $diff =~ s/\\ No newline at end of file\n//g;
例えばこんな感じ。
良い感じ。