Нужна помощь по Perl

Доброго времени суток ВСЕМ,
Кусок кода из обработчика лога squid
11. use URI;
12. use URI::URL;
13. use URI::https;
14. use Net::IPv4Addr qw(:all);
15. use Socket;
16. use Net::hostent;
...
164. @u = split('/',$URLlink); #$u[2] урл типа www.google.com.ua
165. if (($u[2] eq undef) or ($u[2] eq ''))
166. {
167. $u[2]='192.168.1.7';
168. }
169. $iptmp = gethostbyname($u[2]); #Получаем PACKET IP
170. $urlip = inet_ntoa($iptmp->addr); #Получаем "человеческое" IP
...
Прим.: Приведена реальная нумерация строк
Текст ошибки:
"Can't call method "addr" on an undefined value /path/to/script/script line 170,
Скрипт работает, но переодически слетает. В скрипте только 249 строк.
Как я понимаю неопределена переменная $u[2]. Но почему тогда не отрабатывает
условие ?
Как подменять неопределённые значения заведомо правильным ?
--
С наилучшими пожеланиями,
Колесник Андрей
mailto:kolesn***@e*****.ua,
ICQ: 208861095
-*Информационный канал Subscribe.Ru
Адрес подписки:
Написать в лист: mailto:comp.soft.bsd.all-list@subscribe.ru
Отписать: mailto:comp.soft.bsd.all--unsub@subscribe.ru
http://subscribe.ru/ http://subscribe.ru/feedback
Колесник Андрей пишет:
170,
1.Посмотрите что в 587 строке лога squid (<> означает стандартный ввод)
2.gethostbyname вернул ошибку в виде undef (не смог отрезольвить).
-*Информационный канал Subscribe.Ru
Адрес подписки:
Написать в лист: mailto:comp.soft.bsd.all-list@subscribe.ru
Отписать: mailto:comp.soft.bsd.all--unsub@subscribe.ru
http://subscribe.ru/ http://subscribe.ru/feedback