6.16 重複する単語を見つける

ドキュメント内に重複した単語が無いかチェックしたい。

パターンで前方参照を使用する。

$/ = '';            # パラグラフモード
while (<>) {
  while ( m{
                     \b         # 先頭の単語境界
                     (\S+)    # 1個以上の空白文字以外の文字
                     \b         # 末尾の単語境界
                     (
                         \s+  # セパレータ(1個以上の空白文字)
                         \1     # 同じ文字列
                         \b     # 次の単語境界まで
                     )+         # 1回以上の繰り返し
                   }xig
              )
   {
       print "dup word '$1' at paragraph $.\n";
   }
}