Я не так уж много использовал Карпа, потому что обычно катался самостоятельно. Однако, следуя принципам основных модулей, я использую его сейчас. Однако, похоже, это едва ли лучше, чем предупредить / умереть.
Кроме того, что вообще делает кудахтанье / признание / многословие? Я запустил этот короткий сценарий, чтобы получить представление о том, как выглядит результат (потому что документация Carp этого не делает). Он выглядит одинаково при любом запуске (кроме случайных строк).
#!/usr/bin/perl
package Warning;
sub warning {
warn "warn";
}
package CWarn;
use Carp qw(carp cluck);
sub cwarn {
int(rand(2)) ? carp "carp" : cluck "cluck";
}
package Fatal;
use Carp qw(confess croak);
sub fatal {
int(rand(2)) ? confess "confess" : croak "croak";
}
package Loop;
use v5.10;
sub loop {
say '=' x 80;
Warning::warning();
CWarn::cwarn();
loop() unless ($c++ > 10);
Fatal::fatal();
}
package main;
Warning::warning();
CWarn::cwarn();
Loop::loop();
ОБНОВЛЕНИЕ: Обновлен сценарий с именами пакетов, и это действительно имеет значение. Тем не менее, Carp по-прежнему кажется очень простым с точки зрения регистрации информации и не поддерживает вывод в Интернет. Думаю, я посмотрю на другие, такие как CGI :: Carp, Log :: Output и Log :: Log4Perl.