>594-595
俺もperlをちょこっといじって遊んでるくらいの人間なんで、あんま自信ないけど・・・

 if ($deny[0]) {
  local($flag)=0;
  foreach (@deny) {
  #↓これは、@denyから取り出した内容($_)が空('')だったらループ抜け、だと思
   if ($_ eq '') { last; }
   $_ =~ s/\*/\.\*/g;
   if ($host =~ /$_/) { $flag=1; last; }
   #↑アクセスした人のホスト($host)に@denyから取り出した内容($_)が
   #↑含まれていたら$flagの値を1にしてループを抜ける
   #↑つまり「$flag==1なら拒否」
   # これを「$flag==1なら許可」に変えたい → 言い換えると「$flag=!1なら拒否」
  }
  if ($flag=!1) { &error("許可されていないアクセスです!") }
  #↑ということでここをこう変更すればいけるんでは?
 }

ただ「特定のIPからの制限」なら、$hostじゃなくて$addrにするべきなんじゃ?って気がするけど