@Denis_krsk
Нельзя метками переходить между функциями...
Оказывается можно :D Но без глюков можно переходить только внутри одной функции.
Вот тестовый скрипт.
Логика такая, скрипт начинает работу с main, заходит в функцию test_0, там стоят две метки, одна вызывается тут же для увеличения переменной в цикле. После прохождения функции test_0 мы возвращаемся в main, и из неё переходим в функцию test_1, в ней мы переходим по метке в функцию test_0. Но после выполнения функции test_0 скрипт завершается, не возвращаясь ни в test_1, ни в main.
Если бы мы просто вызывали функции, стек бы сохранялся и всё работало как и ожидается.
Основной косяк скрипта был вот в чём: В двух разных функциях ставились и вызывались метки с одинаковым именем, в результате ни чего не происходило и скрипт просто завершался.
Вот тестовый скрипт для наглядности.
Метки зло, с ними проще создать баг, чем с циклом или вызовом функции. Хоть и @support говорит, что это мощный инструмент, я бы не советовал новичкам его использовать повсеместно.