in reply to How do I pass a data structure with CGI redirect

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.