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

Alessandro Gorohovski an.gorohovski на gmail.com
Вт Окт 2 12:59:45 PDT 2012


Ivan Petrov <i.petro.77.00 на gmail.com> писал(а) в своём письме Tue, 02 Oct  
2012 22:54:44 +0300:

>>> Зрасте.
>> ?
>
>>>
>>> Недавно начал учить Perl и вот узнал, что в нем есть goto.
>>> А препод информатики говорит, что за использование goto по рукам надо
>
>> Интересно, а чем ему goto не угодили?
>> и чем они должны быть хуже условных переходов или return?
>
>> Есть ли внятная мотивировка?
>
> вообще goto очень удобен в случаях когда идет последовательная
> инициализация (выделение) ресурсов и в случае если надо сделать откат:

А что значит удобно?


> sub init() {
>     unless (do_something1) { goto rollback_something1 }
>     unless (do_something2) { goto rollback_something2 }
>     unless (do_something3) { goto rollback_something3 }
>     unless (do_something4) { goto rollback_something4 }
>     return;
>
>     rollback_something4:
>         rollback_something4();
>     rollback_something3:
>         rollback_something3();
>     rollback_something2:
>         rollback_something2();
>     rollback_something1:
>         rollback_something1();
> }
>
> Если посмотреть скажем в исходники ядра линукс (не перл конечно, но
> штукенция серьезная), то там таких конструкций чуть поменьше чем в
> каждом модуле встречается :)


-- 
ANG


Подробная информация о списке рассылки Moscow-pm