package Carp;
+our $VERSION = '1.00';
+
=head1 NAME
carp - warn of errors (from perspective of caller)
use Carp qw(cluck);
cluck "This is how we got here!";
+ print FH Carp::shortmess("This will have caller's details added");
+ print FH Carp::longmess("This will have stack backtrace added");
+
=head1 DESCRIPTION
The Carp routines are useful in your own modules because
will report the error as occurring where Foo() was called,
not where carp() was called.
+The routine shortmess() can be used to generate the string that
+carp/croak would have produced. The routine longmess() can be
+used to generate the backtrace that cluck/confess would have
+produced.
+
=head2 Forcing a Stack Trace
As a debugging aid, you can force Carp to treat a croak as a confess
$MaxArgNums = 8; # How many arguments to print. 0 = all.
$Verbose = 0; # If true then make shortmess call longmess instead
+$CarpInternal{Carp}++;
+
require Exporter;
@ISA = ('Exporter');
@EXPORT = qw(confess croak carp);
-@EXPORT_OK = qw(cluck verbose);
+@EXPORT_OK = qw(cluck verbose longmess shortmess);
@EXPORT_FAIL = qw(verbose); # hook to enable verbose mode