|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Vlad 2:5020/400 07 Jun 2002 15:18:47 To : Eugene Grosbein Subject : Re[2]: fetchrow -------------------------------------------------------------------------------- Hello Eugene, Friday, June 7, 2002, 3:26:06 PM, you wrote: EG> 07 июн 2002, пятница, в 10:35 KRAST, Vlad написал(а): EG> EG>> if(defined(@status) && defined($status[0]) { # тут регулярно EG> EG>> # возникает warning EG> EG>> (когда # нет строк) - EG> EG>> почему? EG> V> Во-первых, круглую скобку пропустил в блоке if. А во-вторых, зачем EG> V> проверять $status[0], если у тебя уже получается что массив есть EG> V> (пусть даже из одного элемента состоящий). В том случае, когда ничего EG> V> не вернулось, ты все равно пытаешься получить первый элемент, вот и EG> V> ругается правильно компилятор. EG> В общем, я переписал так: EG> if(defined(@status)) { EG> if(defined($status[0]) { EG> ... EG> } EG> } EG> И выяснил, что когда ни одной строки не возвращается, то defined(@status) EG> истинно, а проверка на defined($status[0]) выдает warning. EG> Hичего не понимаю. Говорят же, что надо проверять что-то одно. В случае проверки массива можно спросить скаляр массива. А Артем Чуприна все толково и правильно объяснил, я полностью согласен с утверждением, что если $status[0] не определен, то и массив пуст. С кем не бывает: попутал я немного праведное с грешным :) -- Best regards, VLAD mailto:vlad@niko.kiev.ua Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5 * Origin: NIKO (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/6303c841c598.html, оценка из 5, голосов 10
|