in reply to File transfer abstractor?

Look at the curl wrappers of libcurl, like WWW::Curl.