>29-34を読んで、気になったのでお聞きしたいのですが、
--------------------------------------------------
#@ip_listは下記のようなリストです。
@ip_list = ('333.139.141.','333.20.117.','333.255.29.');#という感じ

$addr = $ENV{'REMOTE_ADDR'};
foreach (@ip_list){
  if ($addr =~ /^$_/){
    $flag = 1;
  last;
  }
}
--------------------------------------------------
これで一応うまくいっていたので、これまで何も考えて無かったのですが、
これは「.」が正規表現のメタ文字で「任意の1文字」なためにたまたまうまくいってただけで、
  if ($addr =~ /^$_/)
は
  if ($addr =~ /^\Q$_\E/)
とした方がいいのでしょうか?