Как известно некоторым программирующим на Perl, LWP "искаропки" не умеет работать через Socks (интересует socks5).
Но его можно научить, установив соответствующие модули (
IO::Socket::Socks,
LWP::Protocol::socks, etc - в Инете всё написано ;) ).
Отличительной особенностью пакета
IO::Socket::Socks является его неработоспособность со всякими самопальными соксами, продающимися на просторах Инета и растущими на разных протрояненых тачках (ну, а где им ещё-то быть?). При этом "а другие программы с ними работают!".
Причиной оказалось то, что при socks5 handshake этот модуль шлёт данные к серверу "по кусочкам", в то время как большинство клиентских реализаций socks - единым куском. Конечно, это полная кривизна сервера - неправильно принимать и обрабатывать данные (считал, что пришло и сразу кинулся отвечать)... но мне проще было переписать этот модуль и теперь всё зашибись. Хотя, конечно, без гарантий. %)
UPD: "по кусочкам" - имеется ввиду, несколькими send(2).
UPD2:
my IO::Socket::Socks Some parts have been rewritten: send data to socks-server by one write()/send() call. It's need for working with lame socks-servers who have invalid mechanism of reading incoming data;