# Note: s/// appears faster than tr///
$self->{buffer} =~ s/\+/ /g;
- for my $pair ( split( /[&;]/, $self->{buffer} ) ) {
+ for my $pair ( split( /&|;(?:\s+)?/, $self->{buffer} ) ) {
- my ( $name, $value ) = split( /=/, $pair );
+ my ( $name, $value ) = split( /=/, $pair , 2 );
next unless defined $name;
next unless defined $value;