Perl: simple download manager [step 1]
Привет
Не так давно, у меня возникла потребность «просить» домашний компьютер выкачивать файлы. Ставить скачивание в очередь с расписанием (скорость даунлоада после 4-5 утра в сети выше :) как бы то ни было странно). GUI’шный планировщик задач не подходил… т.к. порой надо было начать загрузку с работы. Решился сделать простой даунлоад менеджер с WEB интерфейсом.
Кому интересно, может следовать за мной, шаг за шагом :) и так-с, начнём.
А начнем мы с обзора перлового модуля, LWP::UserAgent, это самый важный для этой задачи модуль.
LWP::UserAgent
Полную информацию по этому модулю можно найти конечно же на cpan.org, а здесь я приведу основные моменты, которые нужно учесть.
Итак, простой пример использования -
1. use LWP::UserAgent;
2. my $ua = LWP::UserAgent->new;
3. $ua->timeout(10);
4. $ua->env_proxy;
5. my $response = $ua->get('http://search.cpan.org/');
6. if ($response->is_success) {
7. print $response->content; # or whatever
8. } else {
9. die $response->status_line;
10. }
здесь кажется всё просто -
- подключаем модуль
- создаём объект
- устанавливаем таймаут ожидания в 10 секунд
- используем прокси определённые в *_proxy переменных окружения
- запрашиваем страницу методом GET, и получаем результат в виде объекта HTTP::Response
- если результат «положительный» (200 <= status-code <= 299), то ...
- печатаем контент
- если же нет, то …
- пишем ошибку
Собственно всё. Примерно так и будет работать наш скрипт.
Советую всё же почитать про LWP::UserAgent более подробно, например здесь.

