|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrey Sapozhnikov 2:5020/400 29 Mar 2002 02:54:19 To : Alexey Pchelnikov Subject : Re: вопрос2 -------------------------------------------------------------------------------- "Alexey Pchelnikov" <alex-ptschel@mtu-net.ru> wrote in message news:a7vs6a$r1l$1@host.talk.ru... > if ($ref->{'isactive'} eq "active") {$s1="selected"} > if ($ref->{'isactive'} eq "disable") {$s2="selected"} ... > print "<option value=2 $s1>Активный</option>"; > print "<option value=1 $s2>Hе используется</option></select></td>"; ... > $s1="";$s2=""; > } > > Так вот. Мне постоянно выдаёт perl -w предупреждение, что в одной из этих > строк (в зависимости от ситуации): > print "<option value=2 $s1>Активный</option>"; > print "<option value=1 $s2>Hе используется</option></select></td>"; > используется неинициализированное значение. Всё бы ничего, но это постоянно > в лог сыпется на сервере и его размеры быстро становятся слишком большими, > чтобы его можно было скачивать и просматривать. > Что здесь можно сделать? Инициализировать значения, разумеется. $s1, к примеру, инициализируется только если первое сравнение прошло успешно. Иниче там undef. Логично было бы переписать выражение так: my $s1 = $ref->{'isactive'} eq "active" ? "selected" : ""; my $s2 = $ref->{'isactive'} eq "disable" ? "selected" : ""; при этом Вам, к тому же не придется "чистить" значения в конце цикла. Этого вообще не стоит делать если можно описать переменную внутри цикла и тем самым ограничить время ее жизни одной итеррацией. Андрей --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/65772827eccc.html, оценка из 5, голосов 10
|