Получение больших документов
Когда Вы запрашиваете большой(или потенциально большой) документ, возникает проблема со стандартными действиями с методами запросов (подобно $response = $browser->get($url)) с тем, что весь объект ответа должен храниться в памяти. Если ответом является 30-мегабайтный файл, то это, мягко говоря, не очень хорошо для Вашей оперативной памяти и размером Вашего процесса в ней.
Хорошей альтернативой является сохранение файла на диск, а не в память. Синтаксис следующий:
$response = $ua->get($url, ':content_file' => $filespec, );
Например,
$response = $ua->get('http://search.cpan.org/', ':content_file' => '/tmp/sco.html' );
Когда Вы используете опцию:content_file, объект $response будет иметь все нормальные заголовки, однако $response->content
будет пустым.
Отмечу, что опция ":content_file" не поддерживалась старыми версиями LWP, поэтому Вы должны принять это во внимание, добавив use LWP 5.66;для проверки версии LWP, если Вы считаете, что Ваша программа может быть запущена на системах с более старыми версиями LWP.
Если Вы хотите, чтобы программа была совместима с более старыми версиями LWP, тогда используйте синтаксис, который позволяет сделать тоже самое:
use HTTP::Request::Common; $response = $ua->request( GET($url), $filespec );