Assuming that one has access to the commandline one could always use Carp::Always or Devel::SimpleTrace via perl's -M option or perl's PERL5OPT.
If one is interested in the arguments being passed insert an INIT block of the form
INIT {
require Data::Dumper;
require Scalar::Util;
# And now redefine Carp::format_arg so Carp can dump refs too!
no warnings qw(once redefine uninitialized);
*Carp::format_arg=sub {
my $arg_S=shift;
my $return_s;
if (not defined $arg_S) { # It's an undef
$return_s='undef';
}
elsif (Scalar::Util::blessed($arg_S)) { # It's an object
my $buffer_s;
{
local $Data::Dumper::Indent=0;
local $Data::Dumper::Terse=0;
# deparse any CodeRefs
local $Data::Dumper::Deparse=ref($arg_S) eq 'CODE';
$buffer_s=Data::Dumper::Dumper($arg_S);
$buffer_s=~ s/^\$VAR\d+\s*=\s*//;
$buffer_s=~ s/;\s*$//;
};
$return_s=$buffer_s;
}
elsif (ref($arg_S)) { # It's a ref Array, Code or Hash
my $buffer_s;
{
local $Data::Dumper::Indent=1;
#local $Data::Dumper::Terse=0;
# deparse any CodeRefs
local $Data::Dumper::Deparse=ref($arg_S) eq 'CODE';
$buffer_s=Data::Dumper::Dumper($arg_S);
$buffer_s=~ s/^\$VAR\d+\s*=\s*//;
$buffer_s=~ s/;\s*$//;
$buffer_s=~ s/ */ /g
if (ref($arg_S) eq 'CODE');
};
$return_s=$buffer_s;
}
else {
$return_s=$arg_S;
$return_s=~ s/'/\\'/g;
$return_s=Carp::str_len_trim($arg_S,$Carp::Heavy::MaxArgLe
+n);
$return_s="'$arg_S'"
unless $arg_S =~ /^-?[\d.]+\z/;
}
$return_s=~ s/([[:cntrl:]]|[[:^ascii:]])/sprintf("\\x{%x}",ord
+($1))/eg;
return $return_s;
}; # Carp::format_arg;
}
into Carp::Always.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|