Apache-HeavyCGI
view release on metacpan or search on metacpan
lib/Apache/HeavyCGI/Debug.pm view on Meta::CPAN
package Apache::HeavyCGI::Debug;
use base 'Class::Singleton';
use Data::Dumper;
use strict;
sub as_string {
my Apache::HeavyCGI::Debug $self = shift;
my Apache::HeavyCGI $mgr = shift;
# An AVHV is ugly to look at, so we convert to an HASH
my(%f,$k,$v);
while (($k,$v) = each %$mgr){
next unless defined $v;
$f{$k} = $v;
}
Data::Dumper::Dumper( \%f )
}
1;
=head1 NAME
Apache::HeavyCGI::Debug - inspect the Pseudohash as Hash with Data::Dumper
=head1 SYNOPSIS
push @layout, "<BR><PRE>",
$self->instance_of("Apache::HeavyCGI::Debug"),
"</PRE><BR>\n";
=head1 DESCRIPTION
Can be used to inspect the application object within an output page.
lib/Apache/HeavyCGI/ExePlan.pm view on Meta::CPAN
$self->{DEBUG} = $debug;
$self->{FUNCTIONAL} = $functional;
$self->{WATCHVARIABLE} = $watchvariable;
$self;
}
sub walk {
my Apache::HeavyCGI::ExePlan $self = shift;
my Apache::HeavyCGI $application = shift;
if ($self->{WATCHVARIABLE}) {
require Data::Dumper;
}
for (my $i=0;;$i+=2) {
warn sprintf(
"entering method[%s] walktype[%s]",
$self->{PLAN}[$i]."::".$self->{PLAN}[$i+1],
$self->{FUNCTIONAL} ? "f" : "m",
) if $self->{DEBUG} && $self->{DEBUG} & 1;
my $before = $self->{WATCHVARIABLE} ?
Data::Dumper::Dumper($application->{$self->{WATCHVARIABLE}}) :
"";
if ($self->{FUNCTIONAL}) {
my $subr = $self->{PLAN}[$i] or last;
my $obj = $self->{PLAN}[$i+1];
$subr->($obj,$application);
} else {
my $obj = $self->{PLAN}[$i] or last;
my $method = $self->{PLAN}[$i+1];
$obj->$method($application);
}
warn sprintf "exiting" if $self->{DEBUG} && $self->{DEBUG} & 2;
my $after = $self->{WATCHVARIABLE} ?
Data::Dumper::Dumper($application->{$self->{WATCHVARIABLE}}) : "";
unless ($before eq $after) {
warn sprintf(
"variable %s changed value from[%s]to[%s] in method[%s]",
$self->{WATCHVARIABLE},
$before,
$after,
$self->{PLAN}[$i]."::".$self->{PLAN}[$i+1],
);
}
}
( run in 0.250 second using v1.01-cache-2.11-cpan-4d50c553e7e )