[Moscow.pm] Запутался

oleg alexeenkov proler на gmail.com
Вт Окт 2 03:47:17 PDT 2012


Mons Anderson <mons на cpan.org> писал(а) в своём письме Tue, 02 Oct 2012  
11:57:21 +0400:

> 2012/10/2 Maxim Vuets <maxim.vuets на gmail.com>
>
>> 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