package Apache::RegistryLexInfo; use strict; use Apache::RegistryNG (); use B::LexInfo (); { no strict; @ISA = qw(Apache::RegistryNG); } sub is_html { shift->content_type eq "text/html" } #RegistryNG uses filename, might be loooong sub namespace_from { shift->uri } sub run { my $pr = shift; my $package = $pr->namespace; my $lexi = B::LexInfo->new; my $before = $lexi->stash_cvlexinfo($package); $pr->SUPER::run(@_); my $after = $lexi->stash_cvlexinfo($package); my $diff = $lexi->diff($before, $after); my $is_html = $pr->is_html; my $hr = $is_html ? "
" : "-=" x 50; my $nl = $is_html ? "
\n" : "\n"; print "
\n" if $is_html;
    print "$hr\n";
    print "Diff:$nl", $$diff, "$hr\n";
    print "Before:$nl", ${ $lexi->dumper($before) }, "$hr\n";
    print "After:$nl", ${ $lexi->dumper($after) }, "$hr\n";
}

1;
__END__

=head1 NAME

Apache::RegistryLexInfo - Diff Apache::Registry script padlists

=head1 SYNOPSIS

 Alias /lexinfo /same/path/as/for/apache/registry/scripts

 PerlModule Apache::RegistryLexInfo
 
  SetHandler perl-script
  PerlHandler Apache::RegistryLexInfo->handler
  Options +ExecCGI 
 

=head1 DESCRIPTION

I is a subclass of I
which takes snapshots of the handler padlist before and after it is
run.  The differences (if any) and the before/after snapshots are
printed to the HTTP stream after the script has run.

=head1 SEE ALSO

The Apache::Status I option.

Apache::RegistryNG(3), B::LexInfo(3)

=head1 AUTHOR

Doug MacEachern