Your described behavior sounds odd, and thus I'd really like the opportunity to replicate your behavior. If you could post a self-contained code snippet that replicates your issue, I might be able to do just that. (wrap it in <code> tags instead of <pre> tags while you are at it). The code you have posted above correctly performs the redirects for me. See I know what I mean. Why don't you?.
I've updated the original post with a minimal example displaying the problem. It seems to work when I write to a file instead of a string, which is strange. Even stranger is that when writing to a file, the order is wrong, I see the Text::BibTeX error at the top of the file and "manual error" after this. Buffering issue? Tried this on two different machines, perl 5.14.1 on both, one cygwin, one OSX.