An addendum that I needed to look up. What do you do if the name or password contains special characters? Well the answer after reading
RFC 1738 is that you just URI encode them. (Duh, I should have guessed.) You can do that with the
URI::Escape module. Be warned, the default character set it escapes does not include @. Therefore you will want to use something like this:
use URI::Escape qw(uri_escape);
# Takes a list of strings, returns them escaped for use in URLs. In s
+calar
# context will only escape the first.
sub safe_uri_escape {
wantarray
? map {uri_escape($_, "\\W")} @_
: uri_escape(shift, "\\W");
}