http://qs321.pair.com?node_id=1215476


in reply to Should I use carp/croak or warn/die

I've sometimes used Carp, but in general found that I didn't really need the more extensive output

carp and croak don't make the output more extensive; they just report the caller to be the source of the error instead of the line where the error was found.

$ perl -Mlib=. -MMod -e'Mod::foo();' Insufficient arguments at Mod.pm line 5. # carp Insufficient arguments at -e line 1. # warn

They also have the advantage of being able to produce a full stacktrace on demand (e.g. PERL5OPT=-MCarp::Always). ...Oops, that also works for warn and die.

$ PERL5OPT=-MCarp::Always perl -Mlib=. -MMod -e'Mod::foo();' Insufficient arguments at Mod.pm line 5. Mod::foo() called at -e line 1 Insufficient arguments at Mod.pm line 6. Mod::foo() called at Mod.pm line 6. Mod::foo() called at -e line 1