Проблема с вашим примером заключается в том, что все ваши сабвуферы находятся в одном пакете (пакет по умолчанию: main
).Это не тот случай использования, для которого Карп был разработан.
Карп предназначен для использования в модулях.Причина в том, что когда модуль сталкивается с проблемой, это часто потому, что вызывающий модуль передал ему неверные данные.Поэтому вместо сообщения строки, в которой модуль обнаружил проблему, обычно более полезно сообщить строку, где был вызван модуль (из кода вне модуля).Это то, что делают функции, экспортируемые Carp.
Есть 2 набора опций да / нет.Функция может быть фатальной (например, die
) или нефатальной (например, warn
).Он может сообщать только строку, где была вызвана функция, или может сообщать полную обратную трассировку.
Fatal Backtrace
carp N N
cluck N Y
croak Y N
confess Y Y
Опция verbose включает возвраты.То есть carp
действует как cluck
, а croak
действует как confess
.Вы можете использовать это, когда поймете, что вам нужно больше отладочной информации, но вы не хотите изменять код для использования confess
.