Data::URIEncode allows for encoding and decoding complex (multi level datastructures) using native Query String manipulators (such as CGI.pm). It takes complex data and turns it into a flat hashref which can then be turned into a URI query string using URL encoding. It also takes a flat hashref of data passed in and translates it back to a complex structure.
WWW: http://search.cpan.org/dist/Data-URIEncode/
None
None
None