Мне так кажется (могу и ошибаться), что строчкой 
my $ip=; мы получаем немного не то. Если строчки будут разделены \\n, то переменная ip будет равна значению первой строки файла. 
Посему предлагаю 
my $ip=; заменить на 
my $ip=join("",);
и  $ip=~/$ENV{\'REMOTE_ADDR\'}/ заменить на
$ip=~/$ENV{\'REMOTE_ADDR\'}/g