If you're certain the evalling of code is the way to go, then turn of the warning. Warning are not by definition things you do wrong - otherwise, they would be errors. Warnings are Perls way of saying "it may be that you are wrong here, but it may also be that I am wrong assuming you are wrong". Clearly, if you want to re-eval the code, you intent to redefine the sub, and the correct thing to do is to shut off the warning.