Подходит ли die
в середине сценария, зависит от того, что вы делаете. Если это только десятки строк, то это нормально. Небольшой инструмент с парой сотен строк, затем рассмотрите признание (см. Ниже). Если это большая объектно-ориентированная система с множеством классов и взаимосвязанным кодом, то, возможно, лучше использовать объект исключения.
Признайтесь в пакете Карп :
Часто ошибка, которая привела к смерти, не находится на линии, которая сообщает отчеты.
Замена die на confess (см. Пакет Carp) даст трассировку стека (как мы дошли до этой строки), что очень поможет в отладке.
Для обработки исключений из встроенных в Perl я люблю использовать autodie . Он перехватывает сбои при open
и других системных вызовах и генерирует исключения для вас, без необходимости делать бит or die
. Эти исключения можно поймать с помощью eval { }
, или, что еще лучше, с помощью Try :: Tiny .