Wow, Text::Diff is very cool. You can write your own code if you want a customized diff format. You can take diffs between strings, filehandles, filenames, arrays, even the output of subroutines. It's obvious that Barrie said "ok, how can I make this as general and useful as possible?" I love that.