File-Tee seems quite simpler and meets your needs too. Since your specially interested in teeing STDOUT and STDERR, I think you'll find File::Tee a lot easier to use.
File::Tee works very well for me on Unix. Unfortunately, I would like this to work on Windows, too, and even with Cygwin, it does not quite work (it does not capture the output of subprocesses).