Ivan Petrov <[email protected]> писал(а) в своём письме 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 mailing list
[email protected] | http://moscow.pm.org