1 package HTTP::Body::UrlEncoded;
7 our $DECODE = qr/%([0-9a-fA-F]{2})/;
12 for my $num ( 0 .. 255 ) {
13 my $h = sprintf "%02X", $num;
14 $hex_chr{ lc $h } = $hex_chr{ uc $h } = chr $num;
20 HTTP::Body::UrlEncoded - HTTP Body UrlEncoded Parser
24 use HTTP::Body::UrlEncoded;
28 HTTP Body UrlEncoded Parser.
41 return unless $self->length == $self->content_length;
43 $self->{buffer} =~ tr/+/ /;
45 for my $pair ( split( /[&;]/, $self->{buffer} ) ) {
47 my ( $name, $value ) = split( /=/, $pair );
49 next unless defined $name;
50 next unless defined $value;
52 $name =~ s/$DECODE/$hex_chr{$1}/gs;
53 $value =~ s/$DECODE/$hex_chr{$1}/gs;
55 $self->param( $name, $value );
59 $self->{state} = 'done';
66 Christian Hansen, C<ch@ngmedia.com>
70 This library is free software . You can redistribute it and/or modify
71 it under the same terms as perl itself.