Thursday, October 29, 2009

LWP::UserAgent: обработка файлов на лету

Для того, чтобы обработать файл (например zip-архив) без предварительного сохранения, можно открыть контент как in-memory file:
my $response = $ua->get($url);

if ($response->is_success) {
open my $fh, '<', $response->content_ref or die "Open failed: $!";
# do smth with $fh
}
else { die $response->status_line }


Как видно из примера, в качестве 3-го аргумента open в данном случае передается ссылка на скаляр.

Данный прием также довольно удобно применять для построчной обработки текста, сохраненного в скалярной переменной.

1 comment: