Text::Diff - テキストの差分を確認する



  1. Perl




  2. モジュール



  3. 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