As
dave_the_m said, you can only pass a string through CGI. If you want to pass a more complex data structure, you can store it on the server, as he suggests, or you can convert it into a string, pass it as as a CGI parameter, then convert it back to your data structure. You could convert it to a string by making it into XML data, as you seem to be using, or with
pack or
sprintf. You may have to escape special characters in the string;
URI::Escape has tools for doing this.