Comment puis-je encoder HTTP OBTENIR les chaînes de requête en Perl?

Cette question est liée en quelque sorte à Quelle est la façon la plus simple de faire une requête HTTP GET en Perl?.

Avant de faire la demande via LWP::Simple j'ai une table de hachage de chaîne de requête composants que j'ai besoin de sérialiser/escape. Quelle est la meilleure façon d'encoder la chaîne de requête? Il convient de prendre en compte les espaces et tous les caractères doivent être échappés en cours de validité, les Uri. Je me dis qu'il est sûrement dans un package existant, mais je ne suis pas sûr de la façon de trouver.

use LWP::Simple;
my $base_uri = 'http://example.com/rest_api/';
my %query_hash = (spam => 'eggs', foo => 'bar baz');
my $query_string = urlencode(query_hash); # Part in question.
my $query_uri = "$base_uri?$query_string";
# http://example.com/rest_api/?spam=eggs&foo=bar+baz
$contents = get($query_uri);

OriginalL'auteur cdleary | 2009-01-16