[SP-pm] use Carp qw/croak/

breno breno at rio.pm.org
Fri Feb 19 07:57:12 PST 2010


2010/2/18 Gustavo Leite de Mendonça Chaves <gustavo em gnustavo.com>:
> 2010/2/18 Thiago Glauco Sanchez <thiago em nerdsland.net>
>>
>> Bom dia, galera.
>>
>> Estou lendo o livro Writing Perl Modules da Appress. O livro é de 2002 e
>> recomenda o uso do modulo Carp para gerar mensagens de erro e matar o
>> programa quando necessário no lugar do "or die".
>
> De acordo com 'perldoc Carp': "The Carp routines are useful in your own
> modules because they act like die() or warn(), but with a message which is
> more likely to be useful to a user of your module."
>
> Ou seja, quando eu estou escrevendo um script eu uso 'warn' e 'die', mas
> quando estou escrevendo um módulo eu uso 'carp' e 'croak'. A ideia é que
> quando ocorre um erro dentro de um módulo usado por um script, a mensagem de
> erro é mais inteligível se aparecer no contexto da linha do script que chama
> a função do módulo, e não no contexto do próprio módulo, pois na maioria das
> vezes o autor (ou usuário) do script conhece o script mas não conhece o
> código dos módulos que este usa.
>

... e, se algum dia vc esbarrar com um módulo ou programa que morre
"no lugar errado" e não te dá a dica de qual foi a chamada no seu
programa (ou módulo) que originou a exceção, use o excelente módulo
Carp::Always do Adriano Ferreira que vai te dar todo o backtrace da
exceção independente de se o autor do módulo usou warn, die, carp,
croak, confess, etc.

http://search.cpan.org/perldoc?Carp::Always

É uma grande mão na roda pra depuração, e basta carregá-lo no início
do seu programa ou pela própria linha de comando:

> perl -MCarp::Always meu_prog.pl


[]s

-b


More information about the SaoPaulo-pm mailing list