>> Объясняю:
> Не умеете вы объяснять.Объясняю:
1) $ua->post( $url, \%form )
2) $ua->post( $url, \@form )
Отправляем форму на сервер. Форма (набор "поле-значение" _формы_) задана массивом или хешем. В вызов post() передается указатель на массив или хеш.
3) $ua->post( $url, \%form, $field_name => $value, ... )
Форма задана указателем, всё остальное - это заголовки HTTP-запроса.
4) $ua->post( $url, $field_name => $value,... Content => \%form )
5) $ua->post( $url, $field_name => $value,... Content => \@form )
Форма задана указателем, который передается в ключе Content, всё остальное - это заголовки HTTP-запроса.
6) $ua->post( $url, $field_name => $value,... Content => $content )
В ключе Content передан произвольный текстовый контент, отправляемый POST-запросом, всё остальное - это заголовки HTTP-запроса.
Вы написали:
$response = $browser->post( "$url", @web_headers, @web_data);
Два массива, переданных не как указатели, разделить нельзя.
Соответственно, содержимое @web_data будет воспринято аналогично содержимому @web_headers.
Поэтому контент пустой, а все, что вы запихнули в массивы, передалось как заголовки HTTP.
Как правильно сделать, я подсказывать не возьмусь, так-как не вполне уверен, что всё остальное правильно, например я не вижу необходимости в @web_headers, т.к. он пустой.
Я бы сделал например так:
$response = $browser->post( "$url", @web_headers, Content => \@web_data);
Но нечетное количество элементов в @web_headers всё сломает.
Если @web_headers вам не нужны, то тогда надо так:
$response = $browser->post( "$url", \@web_data);
Чтобы всё это окончательно было понято, рассмотрим структуру POST-запроса.
Пример (строки пронумерованы мной):
1)POST /path/script.cgi HTTP/1.0
2)User-Agent: HTTPTool/1.0
3)Content-Type: application/x-www-form-urlencoded
4)Content-Length: 32
5)
6)home=Cosby&favorite+flavor=flies
Строки 2-4 - заголовки запроса. 5 - разделитель. 6 - Тело запроса, в формате, соответствующем Content-Type и имеющее длину Content-Length.
Заголовки формируются из @web_headers, тело запроса формируется из @web_data.