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