NAME
CGI::Deurl::XS - Fast decoder for URL parameter strings
SYNOPSIS
use CGI::Deurl::XS 'parse_query_string';
my $hash = parse_query_string('foo=bar&baz=quux&baz=qiix');
# $hash = { 'foo' => 'bar', 'baz' => ['quux', 'qiix'] };
DESCRIPTION
This module decodes a URL-encoded parameter string in the manner of CGI.pm. However, as it uses C code from libapreq to perform the task, it's somewhere from slightly to much faster (depending on your strings) than using CGI or a functionally similar module like CGI::Deurl.
FUNCTIONS
- parse_query_string()
-
$hash_ref = CGI::Deurl::XS::parse_query_string($query_string)
Parses the given query string. If the string is empty, returns undef. Otherwise returns a hash reference containing the key/value pairs encoded by the string. Empty values are returned as undef. If a parameter appears only once, it's value in the hash is the scalar value of the encoded parameter value. If a parameter appears more than once, the hash value is an array reference containing each value given (with value order preserved). Obviously, parameter order is not preserved in the hash.
HTTP escapes (ASCII and Unicode) are decoded in both keys and values. The utf8 flag is not set on returned strings, nor are non-utf8 encodings decoded.
EXPORT
None by default, parse_query_string at request.
SEE ALSO
AUTHOR
Adam Thomason, <athomason@sixapart.com>
COPYRIGHT AND LICENSE
Copyright (C) 2008 by Six Apart Ltd <cpan@sixapart.com>
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.6 or, at your option, any later version of Perl 5 you may have available.