Provided by: libmojolicious-perl_7.59+dfsg-1ubuntu1_all bug

NAME

       Mojo::Parameters - Parameters

SYNOPSIS

         use Mojo::Parameters;

         # Parse
         my $params = Mojo::Parameters->new('foo=bar&baz=23');
         say $params->param('baz');

         # Build
         my $params = Mojo::Parameters->new(foo => 'bar', baz => 23);
         push @$params, i => '♥ mojolicious';
         say "$params";

DESCRIPTION

       Mojo::Parameters is a container for form parameters used by Mojo::URL, based on RFC 3986
       <http://tools.ietf.org/html/rfc3986> and the HTML Living Standard
       <https://html.spec.whatwg.org>.

ATTRIBUTES

       Mojo::Parameters implements the following attributes.

   charset
         my $charset = $params->charset;
         $params     = $params->charset('UTF-8');

       Charset used for encoding and decoding parameters, defaults to "UTF-8".

         # Disable encoding and decoding
         $params->charset(undef);

METHODS

       Mojo::Parameters inherits all methods from Mojo::Base and implements the following new
       ones.

   append
         $params = $params->append(foo => 'ba&r');
         $params = $params->append(foo => ['ba&r', 'baz']);
         $params = $params->append(foo => ['bar', 'baz'], bar => 23);
         $params = $params->append(Mojo::Parameters->new);

       Append parameters. Note that this method will normalize the parameters.

         # "foo=bar&foo=baz"
         Mojo::Parameters->new('foo=bar')->append(Mojo::Parameters->new('foo=baz'));

         # "foo=bar&foo=baz"
         Mojo::Parameters->new('foo=bar')->append(foo => 'baz');

         # "foo=bar&foo=baz&foo=yada"
         Mojo::Parameters->new('foo=bar')->append(foo => ['baz', 'yada']);

         # "foo=bar&foo=baz&foo=yada&bar=23"
         Mojo::Parameters->new('foo=bar')->append(foo => ['baz', 'yada'], bar => 23);

   clone
         my $params2 = $params->clone;

       Return a new Mojo::Parameters object cloned from these parameters.

   every_param
         my $values = $params->every_param('foo');

       Similar to "param", but returns all values sharing the same name as an array reference.
       Note that this method will normalize the parameters.

         # Get first value
         say $params->every_param('foo')->[0];

   merge
         $params = $params->merge(foo => 'ba&r');
         $params = $params->merge(foo => ['ba&r', 'baz']);
         $params = $params->merge(foo => ['bar', 'baz'], bar => 23);
         $params = $params->merge(Mojo::Parameters->new);

       Merge parameters. Note that this method will normalize the parameters.

         # "foo=baz"
         Mojo::Parameters->new('foo=bar')->merge(Mojo::Parameters->new('foo=baz'));

         # "yada=yada&foo=baz"
         Mojo::Parameters->new('foo=bar&yada=yada')->merge(foo => 'baz');

         # "yada=yada"
         Mojo::Parameters->new('foo=bar&yada=yada')->merge(foo => undef);

   names
         my $names = $params->names;

       Return an array reference with all parameter names.

         # Names of all parameters
         say for @{$params->names};

   new
         my $params = Mojo::Parameters->new;
         my $params = Mojo::Parameters->new('foo=b%3Bar&baz=23');
         my $params = Mojo::Parameters->new(foo => 'b&ar');
         my $params = Mojo::Parameters->new(foo => ['ba&r', 'baz']);
         my $params = Mojo::Parameters->new(foo => ['bar', 'baz'], bar => 23);

       Construct a new Mojo::Parameters object and "parse" parameters if necessary.

   pairs
         my $array = $params->pairs;
         $params   = $params->pairs([foo => 'b&ar', baz => 23]);

       Parsed parameter pairs. Note that this method will normalize the parameters.

         # Remove all parameters
         $params->pairs([]);

   param
         my $value = $params->param('foo');
         $params   = $params->param(foo => 'ba&r');
         $params   = $params->param(foo => qw(ba&r baz));
         $params   = $params->param(foo => ['ba;r', 'baz']);

       Access parameter values. If there are multiple values sharing the same name, and you want
       to access more than just the last one, you can use "every_param". Note that this method
       will normalize the parameters.

   parse
         $params = $params->parse('foo=b%3Bar&baz=23');

       Parse parameters.

   remove
         $params = $params->remove('foo');

       Remove parameters. Note that this method will normalize the parameters.

         # "bar=yada"
         Mojo::Parameters->new('foo=bar&foo=baz&bar=yada')->remove('foo');

   to_hash
         my $hash = $params->to_hash;

       Turn parameters into a hash reference. Note that this method will normalize the
       parameters.

         # "baz"
         Mojo::Parameters->new('foo=bar&foo=baz')->to_hash->{foo}[1];

   to_string
         my $str = $params->to_string;

       Turn parameters into a string.

         # "foo=bar&baz=23"
         Mojo::Parameters->new->pairs([foo => 'bar', baz => 23])->to_string;

OPERATORS

       Mojo::Parameters overloads the following operators.

   array
         my @pairs = @$params;

       Alias for "pairs". Note that this will normalize the parameters.

         say $params->[0];
         say for @$params;

   bool
         my $bool = !!$params;

       Always true.

   stringify
         my $str = "$params";

       Alias for "to_string".

SEE ALSO

       Mojolicious, Mojolicious::Guides, <http://mojolicious.org>.