1. made ann,dx spots,wwv,wcy,wx more 'object oriented'.
[spider.git] / perl / DXDebug.pm
index 4b8d4f250575ed198ec5357db1ba7b88c2dd3a8e..14f8dbd2a06ad753c559d3ed9c2cb56a52d8045b 100644 (file)
@@ -14,7 +14,7 @@ require Exporter;
 @EXPORT = qw(dbginit dbg dbgadd dbgsub dbglist dbgdump isdbg dbgclose confess croak cluck);
 
 use strict;
-use vars qw(%dbglevel $fp);
+use vars qw(%dbglevel $fp $callback);
 
 use DXUtil;
 use DXLog ();
@@ -22,6 +22,7 @@ use Carp ();
 
 %dbglevel = ();
 $fp = undef;
+$callback = undef;
 
 # Avoid generating "subroutine redefined" warnings with the following
 # hack (from CGI::Carp):
@@ -64,13 +65,17 @@ sub dbg($)
                for (@l) {
                        s/([\x00-\x08\x0B-\x1f\x7f-\xff])/uc sprintf("%%%02x",ord($1))/eg;
                        print "$_\n" if defined \*STDOUT;
-                       $fp->writeunix($t, "$t^$_"); 
+                       my $str = "$t^$_";
+                       &$callback($str) if $callback;
+                       $fp->writeunix($t, $str); 
                }
        }
 }
 
 sub dbginit
 {
+       $callback = shift;
+       
        # add sig{__DIE__} handling
        if (!defined $DB::VERSION) {
                $SIG{__WARN__} = sub {