I'm not expert in curl, nor even http client coding, so I just checked the
curl(1) man page on my system, it says:
-L, --location
(HTTP) If the server reports that the
requested page has moved to a different
location (indicated with a Location:
header and a 3XX response code), this
option will make curl redo the request on
the new place. If used together with -i,
--include or -I, --head, headers from all
requested pages will be shown. When
authentication is used, curl only sends
its credentials to the initial host. If a
redirect takes curl to a different host,
it won't be able to intercept the
user+password. See also --location-
trusted on how to change this. You can
limit the amount of redirects to follow
by using the --max-redirs option.
If this hasn't already been done in perl6 natively, it might be nicest to just
invoke curl.
It depends on your goal. If you want to expand the perl6 ecosystem, that'd be
great. But if you just want to get the job done, there are advantages to just
invoking curl; web standards evolve really fast, and curl is pretty actively
maintained as far as I know (it's been a little while since I was actively
tracking curl development).