Я пытаюсь отправить файл в конечную точку веб-приложения.Проблема в том, что в тот же запрос мне нужно включить массив в качестве значения одного из параметров.
my $ua = LWP::UserAgent->new();
my $response = $ua->post(
$baseurl_local . 'create',
Content_Type => 'form-data',
Content => [
file => [$file],
targetLang => 'french',
]);
работает просто отлично.
Однако, когда я пытаюсь
my $ua = LWP::UserAgent->new();
my $response = $ua->post(
$baseurl_local . 'create',
Content_Type => 'form-data',
Content => [
file => [$file],
targetLang => ['french','spanish],
]);
Я получаю
Не могу открыть файл на французском языке: нет такого файла или каталога на C: /Strawberry/perl/site/lib/HTTP/Request/Common.pm строка 154.HTTP :: Request :: Common :: form_data (ARRAY (0x6800698), undef, HTTP :: Request = HASH (0x6803a70)) вызывается по адресу C: /Strawberry/perl/site/lib/HTTP/Request/Common.pm line 67
Казалось бы, Perl думает, что ссылка на массив с языками - это файл.
что я делаю не так?
Чтобы расширить разрешение на основе ответа Мэтта: как я забыл упомянуть первоначально, список языков поступает от пользовательского ввода, поэтому я в итоге сделал что-то вроде:
my @languages = (targetLang => 'french', targetLang => 'spanish');
my $ua = LWP::UserAgent->new();
my $response = $ua->post(
$baseurl_local . 'create',
Content_Type => 'form-data',
Content => [
file => [$file],
@languages,
]);