| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Почему этот код не работает? |
| Автор: Maks 30.8.2003, 00:47 |
| (Perl) Этот код работает внутри цикла: if ( $add_new =~ 'true' ) { $all_active[$counter_a] = $all_sesion[$counter_s]; #### именно тут ошибка print '<br>$counter_a - '.$counter_a.'<br>$counter_s - '.$counter_s; #### эта строка ненужна $counter_a++; } $counter_a - по завершению цикла всегда больше 0. Массив @all_active после цикла пустой... |
| Автор: Nobody 30.8.2003, 13:10 |
| Кто бы мне сказал, где тут вообще цикл... |
| Автор: HalkaR 30.8.2003, 13:17 |
| Неплохо бы увидеть весь код. Я так думаю, что здесь скорее всего просто не срабатывает условие. |
| Автор: NightGoblin 31.8.2003, 06:07 | ||||
| Угу, пожалуй, условие - первое что бросилось в глаза... Может быть
или
? |
| Автор: HalkaR 31.8.2003, 10:27 |
| Сравнивать строки при помощи =, != бесполезное дело, на Перле во всяком случае. |
| Автор: NightGoblin 4.9.2003, 22:43 |
| 2 Halkar: у него вроде =~ |
| Автор: HalkaR 4.9.2003, 22:50 |
| NightGoblin, я в общем сказал. Имелось в виду, что сравнивать строки в Перле при промощи различных равенств - пустое дело. Хотя данный способ проверки в принципе работает, но он не очень надежен. |
| Автор: NightGoblin 4.9.2003, 23:09 |
| HalkaR, все зависит от того, что тебе нужно. Иногда не имеет никакого смысла сравнивать по регулярному выражению ($a =~ /foo/), потому что то же самое быстрее и эффективнее можно реализовать буквальным сравнением ($a eq 'foo'). Если например, true читается откуда-то, куда могло быть записано ТОЛЬКО либо 'true' либо 'false', то не имеет никакого смысла тратить время на компиляцию регулярных выражений - лучше сравнить побайтово. |
| Автор: HalkaR 4.9.2003, 23:18 |
| NightGoblin, не спорю |