in reply to Suppress/Reactivate STDERR

In case you just want to get the code working, you can reopen STDERR

open(STDERR, ">&OLDERR"); # instead of # *STDERR = *OLDERR;

If however, you'd like to understand why the glob assignment suffices for the print but not for the subprocess' output, you'll have to wait for wiser heads than mine to explain... :)