Any::Renderer::UrlEncoded - convert data structures into a UrlEncoded string


Any-Renderer documentation  | view source Contained in the Any-Renderer distribution.

Index


NAME

Top

Any::Renderer::UrlEncoded - convert data structures into a UrlEncoded string

SYNOPSIS

Top

  use Any::Renderer;

  my %options = ('FlattenOptions' => {'HashDelimiter' => '->'});
  my $format = "UrlEncoded";
  my $r = new Any::Renderer ( $format, \%options );

  my $data_structure = {...};
  my $string = $r->render ( $data_structure );

You can get a list of all formats that this module handles using the following syntax:

  my $list_ref = Any::Renderer::UrlEncoded::available_formats ();

Also, determine whether or not a format requires a template with requires_template:

  my $bool = Any::Renderer::UrlEncoded::requires_template ( $format );

DESCRIPTION

Top

Any::Renderer::UrlEncoded renders a Perl data structure as a URI encoded string. Keys and values are escaped via URI::Escape::uri_escape. For example:

  perl -MAny::Renderer -e "print Any::Renderer->new('UrlEncoded')->render({a => 1, b => [2,3]})"

results in:

  a=1&b%3A1=3&b%3A0=2

This can be passed as a query string to a CGI script and reconstituted using Hash::Flatten::unflatten:

  use CGI;
  use Hash::Flatten;
  my $data_structure = Hash::Flatten::unflatten( CGI->new()->Vars() );

NB. the top-level of the data structure must be a hashref.

FORMATS

Top

UrlEncoded

METHODS

Top

$r = new Any::Renderer::UrlEncoded($format,\%options)

$format must be UrlEncoded. See OPTIONS for a description of valid %options.

$string = $r->render($data_structure)

The main method.

$bool = Any::Renderer::UrlEncoded::requires_template($format)

False in this case.

$list_ref = Any::Renderer::UrlEncoded::available_formats()

Just the one - UrlEncoded.

OPTIONS

Top

Delimiter

The character separating each key=value pair. Defaults to &. You might want to change to ; if you are embedding values in XML documents.

FlattenOptions

A hashref passed to Hash::Flatten (see Hash::Flatten for the list of options it supports).

SEE ALSO

Top

Hash::Flatten, URI::Escape, Any::Renderer

VERSION

Top

$Revision: 1.11 $ on $Date: 2006/09/04 12:15:53 $ by $Author: johna $

AUTHOR

Top

Matt Wilson and John Alden <cpan _at_ bbc _dot_ co _dot_ uk>

COPYRIGHT

Top


Any-Renderer documentation  | view source Contained in the Any-Renderer distribution.