in reply to problems with switching off params::validate in mod_perl
You don't show us the relevant code, so we don't know if there is an error in your program logic.
My guess is that you didn't restart the (correct instance of) Apache webserver and it still has an old version of the environment where PERL_NO_VALIDATION is not set.
Note that the environment of the Apache webserver may well be different from your login environment as normal user.
Personally, I would look at setting that environment variable in the HTTP configuration for your script/website instead of setting it globally for the Apache user.