Text::Diff - テキストの差分を確認する
テキストの差分を確認するにはText::Diffモジュールを使用します。UnixのdiffプログラムをPerlで実装したものです。
# モジュールの読み込みと関数のインポート use Text::Diff 'diff';
テキストの差分を確認するにはdiff関数を使用します。引数にはファイル名や文字列を指定することができます。
# ファイルの差分を確認 $diff = diff($filename1, $filename2); $diff = diff(\$string1, $string2);
ファイル間のテキストの差分を出力するサンプルです。
# ファイル間の差分を確認 use Text::Diff 'diff'; my @files = @ARGV; my $diff = diff($files[0], $files[1]); print $diff;
差分結果のスタイル
オプションで差分結果のスタイルを指定することができます。スタイルには次のものがあります。
Unified
Unifiedスタイルは以下のような差分表示方法です。
--- A Mon Nov 12 23:49:30 2001 +++ B Mon Nov 12 23:49:30 2001 @@ -2,13 +2,13 @@ 2 3 4 -5d +5a 6 7 8 9 +9a 10 11 -11d 12 13
Context
Contextは以下のような差分表示方法です。
*** A Mon Nov 12 23:49:30 2001 --- B Mon Nov 12 23:49:30 2001 *************** *** 2,14 **** 2 3 4 ! 5d 6 7 8 9 10 11 - 11d 12 13 --- 2,14 ---- 2 3 4 ! 5a 6 7 8 9 + 9a 10 11 12 13
OldStyle
OldStyleは以下のような差分表示方法です。
5c5 < 5d --- > 5a 9a10 > 9a 12d12 < 11d