В чем разница между вариантами «Карп / кваканье», «Клик / исповедь» и подробным описанием?

Я не так уж много использовал Карпа, потому что обычно катался самостоятельно. Однако, следуя принципам основных модулей, я использую его сейчас. Однако, похоже, это едва ли лучше, чем предупредить / умереть.

Кроме того, что вообще делает кудахтанье / признание / многословие? Я запустил этот короткий сценарий, чтобы получить представление о том, как выглядит результат (потому что документация 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.

52
задан tshepang 8 April 2013 в 03:14
поделиться