in reply to Formatting STDERR

While Filter::Handle looks like the right module for the job, I'd probably just do it by hand as below. If your error output isn't going to be line-based, you should use select to poll for input within the child. Season to taste.
my $err_file = "error.log"; open(ERRLOG, "+>>logs/system/$err_file") or die "Could not open logfil +e:$!\n"; flock(ERRLOG,2); # Was *STDERR = *ERRLOG; my $child = open(STDERR, '|-'); if ($child < 0) { die "Could not fork: $!\n" } if ($child == 0) { while (<>) { printf ERRLOG '%s %s', scalar(localtime), $_; } exit 0; } print "One\n"; print STDERR "Foo\n"; print "Two\n"; print STDERR "Bar\n"; # and ends with: flock(ERRLOG,8); close(ERRLOG);

The PerlMonk tr/// Advocate