That's not going to work. Setting PrintError to 0 just prevents perl from calling warn when errors are encountered.
This isn't an error but a print statement in the sp_rename proc. Normally I handle this by nicely asking the stored proc dev to remove the offending print statement - something your DBA might frown upon when dealing with a system proc!
This is a perfectly acceptable method unless we call system stored procedures (i.e. sp_rename) or where the source of the stored procedure is not available (3rd party). In truth, only using an error handler will 'catch' the print statement output from being sent to STDERR.