Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > Блок |
Автор: tolkien 25.5.2008, 14:35 | ||||
Неприятное для себя сделал открытие. Конструкция вида label:{} некорректно работает. Ниже примеры. Листинг 1
Вывод while inner n =4 while inner n =5 while inner n =6 while while inner n =2 while inner n =3 while Если к метке добавить while, то работает правильно Листинг 2
Вывод: while inner n =4 inner n =5 inner n =6 while inner n =2 inner n =3 |
Автор: nitr 25.5.2008, 16:04 |
tolkien, или я вашей задумки не понял, но вообще это разные "скрипты" и оба отработали, как должны были отработать, некорректности НЕТ. Если можете, то попытайтесь блок-схемами эти программы отобразить, увидите разницу ![]() |
Автор: ginnie 25.5.2008, 16:51 |
tolkien, nitr прав, все работает корректно. Возможно, Вы забыли, что блок {} эквивалентен однократному циклу for, поэтому при next INNER тело цикла повторно не выполняется. |
Автор: tolkien 25.5.2008, 18:01 |
Да признаю свою ошибку. Вылетело из головы что это фор выполняемый один раз. Надо вместо next INNER заменить на redo INNER или на goto INNER. |