Mons Anderson <[email protected]> писал(а) в своём письме Tue, 02 Oct 2012
11:57:21 +0400:
2012/10/2 Maxim Vuets <[email protected]>
On Tue, Oct 02, 2012 at 07:18:21AM +0100, ksvs wrote:
>Недавно начал учить Perl и вот узнал, что в нем есть goto.
>А препод информатики говорит, что за использование goto по рукам надо
>бить, а языки с ним - ушербны.
Относитесь скептически к людям, которые рассуждают такими категориями.
Поддерживаю.
И кстати в перле есть 3 версии goto.
1. классический goto LABEL. используется крайне редко.
2. goto EXPR. жуткая версия goto LABEL, которая позволяет переходить на
динамически вычисленную метку. Никогда вообще не видел, чтоб кто-то
использовал.
Например есть скрипт, в котором живет некий процесс, состоящий из разных
долгих стадий, который должны выполняться в опредененной
последовательности.
Стадии могут сломаться, и мы можем захотеть возобновить работу с середины
a.pl:
eval { goto $ARGV[0]; }
a:
sleep 86400;
b:
sleep 86400;
c:
sleep 86400;
d:
sleep 86400;
e:
sleep 86400;
a.pl c # - начнем с c
Интересно посмотреть на решения без goto
3! goto CODEREF. Прекрасная, незаменимая, функция, которой и я пользуююсь
регулярно и встречаю таковое использование. За примером далеко ходить не
нужно - Tail Recursion
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org