Памят очищать в перле не надо.
Этим занимается сборщик мусора.
Если на коленке, то вот такой скрипт на перле:
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 секунд######