DESTROY вызывается в контексте срабатывания die или в обычном выходе из скоупа ?
Хм, честно говоря не вполне понятно, какой профит эта фича даёт с точки зрения программиста (ну, кроме того что даёт возможность писать производительный императивный код, оптимизированный под sunny way). В любом случае это не тема для perl. Проще писать с помощью обычных RAII приёмов без явного кода для rollback, не забывая того, что исключение может произойти в любом месте вычисления (ну и что любые успешно созданные эффекты после обработки исключений - останутся). К тому же, сейчас всё больше кода - асинхронного. Его в идеале имеет смысл писать в функциональном стиле, и с иммутабельными объектами. Ну а мы изредка пользуемся самописным клоном Guard, вручную дёргая метод - аналог описанного в статье Dismiss для репортинга успеха.
Ага, я с тобой полностью согласен, поэтому и написал что вопрос чисто теоретический из серии, смотри как я могу ) просто интересно стало, а возможно ли такое в перле)
Обсуждают сегодня