Well, I think that$q->delete('keywords') if $q->keywords;
will delete the "keywords" parameter in every case, i.e. regardless if it has been automatically generated by CGI.pm or if it actually has been passed via query string. But as I wrote in my initial post, I would like to remove it only in the former case (for example when the script has been called without any parameters), but I want to keep it if it has been "actively" passed via query string.
Thus, I think I really have to check if there is no query string, or if there is a query string which does not contain = or &, and remove the "keywords" parameter accordingly.
Anyways, thank you very much for your suggestion. I have learned a much from how you use dd and Data::Dump.
In reply to Re^2: Unwanted parameter when executing CGI scripts