なんか、あまり変わってない気がするのは気のせいに違いない。

#dat追記部分
if (open(OUT, ">>$DATAFILE"))
print OUT "$outdat\n";
close(OUT);
} else {
DispError("ERROR!", "ERROR:このスレッドには書き込めません。緊急緊急緊急!!");
}

#ログのカキコ数を取得
if($lognum > 1010)
{
chmod(0555, $dattemp);#念のため
}
elsif($lognum > 999)
{
if(open(OUT,">>$dattemp"))
{
print OUT "1001<><>Over 1000 Thread<>このスレッドは1000を超えました。 <br> もう書けないので、新しいスレッドを立ててくださいです。。。 <>\n";
close(OUT);
$lognum++;
}
chmod(0555, $dattemp);
}
else
{
#パーミッション調整
umask(0);
chmod(0666, $dattemp);
}

にしたほうがいいかも。