Perl: LWP и бесконечный цикл?

На perl ни разу не писал.
Появилась необходимость постоянно чекать примерно 100-200 адресов на доступность.

Принцип работы такой:
Забрать из базы список адресов, проверить все адреса, вырубить не активные и всё с начала.

Нагуглил lwp, в принципе все просто.
Но интересует один вопрос, не повесит ли оно мне со временем сервак?
Как очищать память (если надо) и т.д. ?

Ссылки на мануалы приветствуются.
  • Вопрос задан
  • 318 просмотров
Пригласить эксперта
Ответы на вопрос 1
@pcdesign
Памят очищать в перле не надо.
Этим занимается сборщик мусора.
Если на коленке, то вот такой скрипт на перле:
use strict;
use warnings;
use utf8;
use feature 'say';
use LWP::Simple;
use HTTP::Request::Common qw(GET);
use open ':std', ':encoding(UTF-8)';

my $ua = LWP::UserAgent->new;

my @add = qw(http://rbc.ru http://habrahabr.ru http://some_dead_site_.net http://yahoo.com);
my %http = map {$_ => 1} @add;
while (1) {
    for my $address (keys %http) {
        my $req = GET $address;
        my $res = $ua->request($req);
        if ( $res->{'_msg'} eq 'OK' ) {
            say "С сайтом $address - все ок";
        }
        else {
            say "Сайт $address - лежит. Удаляем из списка";
            delete $http{$address};
        }
    }
    say "######Спим 20 секунд######";
    sleep 20;
}


И результат работы:

С сайтом http://yahoo.com - все ок
Сайт http://some_dead_site_.net - лежит. Удаляем из списка
С сайтом http://habrahabr.ru - все ок
С сайтом http://rbc.ru - все ок
######Спим 20 секунд######
С сайтом http://yahoo.com - все ок
С сайтом http://habrahabr.ru - все ок
С сайтом http://rbc.ru - все ок
######Спим 20 секунд######
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы