#! /usr/local/bin/perl # # lacklist.pl - list the numbers of lack mail in ML log # # ML番号抜けチェック # @num=(); # 番号控え sub numerically { $a <=> $b; }; # 数字昇順ソート用比較関数 # Subject:に「[mie:数字]」が含まれている行を探し、番号を記録 # する。但し、RMAILのようにヘッダが2回現れるものに備えて、同 # じ番号は1度しか記録しない。 $p=-1; # 番兵 while (<>) { if (/^Subject:/io && /\[\w{3,8}:(\d+)\]/o && ($p != $1)) { push(@num,$1); $p=$1; } } # perl内蔵のsortが「ほとんど整列した入力」に弱い場合はソート # する前にシャッフルすること。 @num = sort numerically @num; # 昇順ソートされた番号列から抜けている番号を出力する。 $p=$num[0]+1; for ($i=1; $i<=$#num; $i++) { $n=$num[$i]; if ($p != $n) { for ($j=$p; $j<$n; $j++) { print "$j\n"; } } $p=$n+1; } 0;