Вместо этого используйте LWP :: UserAgent:
use strict;
use warnings;
use LWP::UserAgent;
my %query_hash = (spam => 'eggs', foo => 'bar baz');
my $ua = LWP::UserAgent->new();
my $resp = $ua->get("http://www.foobar.com", %query_hash);
print $resp->content;
Заботится о кодировке для вас.
Если вам нужно более универсальное решение для кодирования, см. HTML :: Entities .
РЕДАКТИРОВАТЬ: URI :: Escape является лучшим выбором.