何度もすみません。文字数制限と改行制限に引っかかっているうちに間違えました。↑ではなく、これです。
#検索処理
$in{'word'} =~ s/ / /g;
@word = split(/\s+/, $in{'word'});

open(IN,"$logfile") || &error("Open Error : $logfile");
$i=0;
while (<IN>) {
($no,$com,$m1,$m2,$m3,$m4,$m5,$m6,$m7,$m8,$a,$a,$a,$a,$a,$a,$a,$a,$a,$a) = split(/<>/);

if ($in{'M1'} != $m0 && $in{'M1'} != $m1) { next; }
if ($in{'M2'} != $m0 && $in{'M2'} != $m2) { next; }
if ($in{'M3'} != $m0 && $in{'M3'} != $m3) { next; }
if ($in{'M4'} != $m0 && $in{'M4'} != $m4) { next; }
if ($in{'M5'} != $m0 && $in{'M5'} != $m5) { next; }
if ($in{'M6'} != $m0 && $in{'M6'} != $m6) { next; }
if ($in{'M7'} != $m0 && $in{'M7'} != $m7) { next; }
if ($in{'M8'} != $m0 && $in{'M8'} != $m8) { next; }
# キーワード検索部
$flag=1;
foreach $key (@word) {
if (index($_,$key) >= 0) { $flag=1; }
else { $flag=0; last; }
}