package TIESTDERR; use strict; use Apache; sub TIEHANDLE { my $class = shift; bless {}, $class; } sub PRINT { my $self = shift; my $stderr .= join '', @_; chomp $stderr; Apache::Server::warn ( "$stderr" ); } sub FETCH {} sub BINMODE {} sub DESTROY { my $class = shift; $SIG{__WARN__} = 'DEFAULT'; $SIG{__DIE__} = 'DEFAULT'; # Apache::Server::warn ( "DESTROY" ); } sub UNTIE { my $class = shift; # Apache::Server::warn ( "UNTIE" ); } #sub error_id { # my @localtime = localtime; # sprintf "%04d%02d%02d-%02d%02d%02d-%05d", $localtime[5] + 1900, # $localtime[4] + 1, @localtime[3, 2, 1, 0], $$; # } sub main { unless (tied(*STDERR) && ref(tied(*STDERR)) eq 'TIESTDERR') { tie *STDERR, __PACKAGE__; $SIG{__WARN__} = sub { print STDERR @_; }; $SIG{__DIE__} = sub { print STDERR @_; }; } } 1;