|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Maksim Pozdeyev 2:5090/67.6 09 Mar 2002 13:54:28 To : Artem Chuprina Subject : Re: Use of uninitialized value -------------------------------------------------------------------------------- 08 Мар 02 11:54, Artem Chuprina -> Maksim Pozdeyev: MP> >>> В коде есть такая строка: if ($ARGV[0] eq "") { и т.п. MP> >>> Use of uninitialized value in string eq at ./lc line 18. IN>>> Канонический вариант - подстановка вида ($var||'') IN>>> Операция '||' специально не ругается на uninitialized. IN>>> В твоём контексте может оказаться правильным сделать IN>>> чуть по другом, но к сожалению мои возможности не IN>>> позволяют узнать, что же скрывается под аббревиатурой IN>>> 'и т.п.' MP>> Hу меня уже просветили на тему if (defined($ARGV[0]) && $ARGV[0] MP>> eq "") MP>> Hо это не работает, или я чей-то не понимаю. AC> А дочитать до конца то письмо, в котором тебя об этом просветили, AC> просветления не хватило? Пывбывав бы... if (defined($ARGV[0]) || $ARGV[0] eq "") должного результато тоже не дало. MP>> Мне нужно узнать, MP>> передали-ли программе параметры в командной строке и если нет, то MP>> выполнить определенные действия. AC> В данном случае характерная идиома - unless (@ARGV). Ибо если AC> параметров нет (и ТОЛЬКО в этом случае - если $ARGV[0] eq "", то AC> передан один параметр, равный пустой строке) @ARGV пуст. Вообщем сделал if(!defined($ARGV[0])) и все заработало без warning'ов. Спасибо за помощь. -- Всего наилучшего, Maksim Pozdeyev aka Barlog M. --- GoldED+/LNX 1.1.5 * Origin: От Парижа до Hаходки с водкой лучше чем без водки! (2:5090/67.6) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/28303c8a68fe.html, оценка из 5, голосов 10
|