Perl入門ゼミ

テキスト処理、Linuxサーバー管理、Web開発ならPerl
  1. Perl
  2. モジュール
  3. Text::Diff

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