X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fp5-CGI-Ex;a=blobdiff_plain;f=lib%2FCGI%2FEx%2FDump.pm;h=c8863246117e302fdb4e7029217bd9ede3337e26;hp=fd762913ed77fa99b799c7dac29d12d1f247f314;hb=4eee158dce82376f2f37de29d91c53f60a24aebe;hpb=85070b46d0a93ddbeef07341421adb8389a55418 diff --git a/lib/CGI/Ex/Dump.pm b/lib/CGI/Ex/Dump.pm index fd76291..c886324 100644 --- a/lib/CGI/Ex/Dump.pm +++ b/lib/CGI/Ex/Dump.pm @@ -1,21 +1,26 @@ package CGI::Ex::Dump; -### CGI Extended Data::Dumper Extension +=head1 NAME + +CGI::Ex::Dump - A debug utility + +=cut ###----------------------------------------------------------------### -# Copyright 2004 - Paul Seamons # +# Copyright 2006 - Paul Seamons # # Distributed under the Perl Artistic License without warranty # ###----------------------------------------------------------------### -### See perldoc at bottom - -use vars qw(@ISA @EXPORT @EXPORT_OK $ON $SUB $QR1 $QR2 $full_filename); +use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION + $CALL_LEVEL + $ON $SUB $QR1 $QR2 $full_filename); use strict; use Exporter; +$VERSION = '2.00'; @ISA = qw(Exporter); @EXPORT = qw(dex dex_warn dex_text dex_html ctrace dex_trace); -@EXPORT_OK = qw(dex dex_warn dex_text dex_html ctrace dex_trace debug what_is_this); +@EXPORT_OK = qw(dex dex_warn dex_text dex_html ctrace dex_trace debug); ### is on or off sub on { $ON = 1 }; @@ -50,11 +55,10 @@ BEGIN { ### same as dumper but with more descriptive output and auto-formatting ### for cgi output -sub what_is_this { +sub _what_is_this { return if ! $ON; ### figure out which sub we called - my ($pkg, $file, $line_n, $called) = caller(0); - ($pkg, $file, $line_n, $called) = caller(1) if $pkg eq __PACKAGE__; + my ($pkg, $file, $line_n, $called) = caller(1 + ($CALL_LEVEL || 0)); substr($called, 0, length(__PACKAGE__) + 2, ''); ### get the actual line @@ -92,27 +96,27 @@ sub what_is_this { elsif ($called eq 'dex_warn') { warn $txt } else { print $txt } } else { - my $html = "
$called: $file line $line_n\n";
+    my $html = "
$called: $file line $line_n\n";
     for (0 .. $#dump) {
       $dump[$_] =~ s/\\n/\n/g;
       $dump[$_] = _html_quote($dump[$_]);
-      $dump[$_] =~ s|\$VAR1|$var[$_]|g;
+      $dump[$_] =~ s|\$VAR1|$var[$_]|g;
       $html .= $dump[$_];
     }
     $html .= "
\n"; return $html if $called eq 'dex_html'; require CGI::Ex; - &CGI::Ex::print_content_type(); + CGI::Ex::print_content_type(); print $html; } } ### some aliases -sub debug { &what_is_this } -sub dex { &what_is_this } -sub dex_warn { &what_is_this } -sub dex_text { &what_is_this } -sub dex_html { &what_is_this } +sub debug { &_what_is_this } +sub dex { &_what_is_this } +sub dex_warn { &_what_is_this } +sub dex_text { &_what_is_this } +sub dex_html { &_what_is_this } sub _html_quote { my $value = shift; @@ -135,7 +139,7 @@ sub ctrace { my $max1 = 0; my $max2 = 0; my $max3 = 0; - while (my %i = &Carp::caller_info(++$i)) { + while (my %i = Carp::caller_info(++$i)) { $i{sub_name} =~ s/\((.*)\)$//; $i{args} = $i{has_args} ? $1 : ""; $i{sub_name} =~ s/^.*?([^:]+)$/$1/; @@ -153,7 +157,7 @@ sub ctrace { } sub dex_trace { - &what_is_this(ctrace(1)); + _what_is_this(ctrace(1)); } ###----------------------------------------------------------------### @@ -162,10 +166,6 @@ sub dex_trace { __END__ -=head1 NAME - -CGI::Ex::Dump - A debug utility - =head1 SYNOPSIS use CGI::Ex::Dump; # auto imports dex, dex_warn, dex_text and others