Как лучше всего регистрировать ошибки при тестировании в Perl? - PullRequest
2 голосов
/ 20 июля 2009

Как лучше всего регистрировать ошибку при тестировании в Perl? Я предпочитаю однострочное решение, такое как

return 0 if $var!=3 and $logger->error("Var is not 3"))

Может ли быть реализовано что-то похожее на приведенный пример?

Ответы [ 5 ]

3 голосов
/ 20 июля 2009

Вы всегда можете сделать:

$logger->error("Var is not 3") and return 0 if $var != 3

, который использует преимущество и низкий приоритет , если еще более низкий приоритет).

3 голосов
/ 20 июля 2009
$logger->error("Var is not 3"), return 0 if $var != 3;

Это использует поддержку Perl для оператора запятой , который позволяет вам написать выражение, где части слева вычисляются, но их значение игнорируется, а конечное значение выражения является самым правым часть.

0 голосов
/ 18 февраля 2012

Если вы используете Test :: More, используйте diag (). Это играет лучше с доказать и тому подобное.

0 голосов
/ 21 июля 2009

Log4Perl может делать то, что вы хотите. Это Perl-клон Log4J. Имеет тонкую настройку динамической фильтрации журналов.

0 голосов
/ 20 июля 2009

Я предпочитаю использовать carp / croak / confess, если это только моя отладка, но если вы делаете это для производственного кода, возможно, попробуйте Log :: Report .

Итак, что-то вроде: $var == 3 or confess("var != 3!") - это то, что я бы использовал, если бы я хотел один лайнер, который печатает ошибку и трассировку стека.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...