package TeeStdErr; use Fcntl qw(:flock); my $log_file = "$ENV{DOCUMENT_ROOT}/state/err.log"; sub TIEHANDLE { my $i; bless \$i, shift } sub PRINT { my $r = shift; local *STDERR; untie *STDERR; print STDERR @_; if ( open my $FH, '>>', $log_file ) { flock $FH, LOCK_EX; print $FH "" . localtime, "\t", "ErrorLog: ", @_; close $FH; } else { warn "Open $log_file '$!'", @_; } } package main; $| = 1; # Tee für STDERR tie *STDERR, "TeeStdErr";