WWW::Form::UrlEncoded - parser and builder for application/x-www-form-urlencoded
use WWW::Form::UrlEncoded qw/parse_urlencoded build_urlencoded/; my $query_string = "foo=bar&baz=param"; my @params = parse_urlencoded($query_string); # ('foo','bar','baz','param') my $query_string = build_urlencoded('foo','bar','baz','param'); # "foo=bar&baz=param";
WWW::Form::UrlEncoded provides application/x-www-form-urlencoded parser and builder. This module aims to have compatibility with other CPAN modules like HTTP::Body's urlencoded parser.
This module try to use WWW::Form::UrlEncoded::XS by default and fail to it, use WWW::Form::UrlEncoded::PP instead
WWW::Form::UrlEncoded parsed string in this rule.
&
;
name
value
' '
=
""
+
'a=b&c=d' => ["a","b","c","d"] 'a=b;c=d' => ["a","b","c","d"] 'a=1&b=2;c=3' => ["a","1","b","2","c","3"] 'a==b&c==d' => ["a","=b","c","=d"] 'a=b& c=d' => ["a","b","c","d"] 'a=b; c=d' => ["a","b","c","d"] 'a=b; c =d' => ["a","b","c ","d"] 'a=b;c= d ' => ["a","b","c"," d "] 'a=b&+c=d' => ["a","b"," c","d"] 'a=b&+c+=d' => ["a","b"," c ","d"] 'a=b&c=+d+' => ["a","b","c"," d "] 'a=b&%20c=d' => ["a","b"," c","d"] 'a=b&%20c%20=d' => ["a","b"," c ","d"] 'a=b&c=%20d%20' => ["a","b","c"," d "] 'a&c=d' => ["a","","c","d"] 'a=b&=d' => ["a","b","","d"] 'a=b&=' => ["a","b","",""] '&' => ["","","",""] '=' => ["",""] '' => []
parse $str and return Array that contains key-value pairs.
$str
parse $str and return ArrayRef that contains key-value pairs.
build urlencoded string from param. build_urlencoded accepts arrayref and hashref values.
build_urlencoded( foo => 1, foo => 2); build_urlencoded( foo => [1,2] ); build_urlencoded( [ foo => 1, foo => 2 ] ); build_urlencoded( [foo => [1,2]] ); build_urlencoded( {foo => [1,2]} );
If $delim parameter is passed, this function use it instead of using &.
$delim
This function is almost same as build_urlencoded. build_urlencoded_utf8 call utf8::encode for all parameters.
build_urlencoded
utf8::encode
WWW_FORM_URLENCODED_PP
If true, WWW::Form::UrlEncoded force to load WWW::Form::UrlEncoded::PP.
CPAN already has some application/x-www-form-urlencoded parser modules like these.
They does not fully compatible with WWW::Form::UrlEncoded. Handling of empty key-value and supporting separator characters are different.
Copyright (C) Masahiro Nagano.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Masahiro Nagano <kazeburo@gmail.com>
To install WWW::Form::UrlEncoded, copy and paste the appropriate command in to your terminal.
cpanm
cpanm WWW::Form::UrlEncoded
CPAN shell
perl -MCPAN -e shell install WWW::Form::UrlEncoded
For more information on module installation, please visit the detailed CPAN module installation guide.