Furthermore, it is evident that you did not read the docs: CGI. The param() routine returns a list of available params in list context - hence ('id') in your case. If you want the value call param('id').
-sam
Comment on Re: passing param value throughout GET method