Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/400     07 Jun 2002  15:04:17
 To : Eugene Grosbein
 Subject : Re: fetchrow
 -------------------------------------------------------------------------------- 
 
 Здравствуй, Eugene Grosbein.
 
  EG>>>  if(defined(@status) && defined($status[0]) { # тут регулярно 
  EG>>>                                               # возникает warning (когда
  EG>>>                                               # нет строк) - почему?
  V>> Во-первых, круглую скобку пропустил в блоке if. А во-вторых, зачем
  V>> проверять $status[0], если у тебя уже получается что массив есть
  V>> (пусть даже из одного элемента состоящий). В том случае, когда ничего
  V>> не вернулось, ты все равно пытаешься получить первый элемент, вот и
  V>> ругается правильно компилятор.
 
 EG> В общем, я переписал так:
 
 EG> if(defined(@status)) {
 EG>   if(defined($status[0]) {
 EG>   ... 
 EG>   }
 EG> }
 
 EG> И выяснил, что когда ни одной строки не возвращается, то defined(@status)
 EG> истинно, а проверка на defined($status[0]) выдает warning. 
 EG> Hичего не понимаю.
 
 Еще раз: defined от массива не бывает. Массив всегда defined. Он может быть
 пуст или непуст. Если у тебя defined($status[0]) выдает варнинг (кстати,
 скобку ты опять забыл; может, все-таки это она виновата?), то if (@status &&
 defined($status[0])). Hо по-моему, уже очень давно у перла нет проблем с тем,
 чтобы проверить defined от несуществующего элемента массива.
 
 -- 
 Artem Chuprina
 Communiware.net
 RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/358.49, ICQ: 13038757
 --- ifmail v.2.15dev5
  * Origin: Leninsky 45 home network (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: fetchrow   Artem Chuprina   07 Jun 2002 15:04:17 
Архивное /ru.perl/144543decb619.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional