Личный кабинет    
Назад К началу Вперед Карта сайта Телефонные коды стран и городов Мира Анализатор тарифов Служб IP-Телефонии и Рейтинг

Разделы
Введение
Литература
Операторы
Оборудование
Анализатор
Сотрудничество
Печать карт
Новости
Опросник
Коды
Справка
Работа
Каталог
Хостинг
Личный кабинет

Реклама

Perl для IP-Телефонии (29 – Клиенты службы новостей Internet, часть 5)

предыдущая часть ««»» следующая часть

Итак, вот он обещанный ранее сценарий запроса групп новостей по шаблону. Вывод этого сценария был немного сокращен для экономии места.

% newsgroup_stats.pl '*.perl*'

alt.comp.perlcgi.freelance    454    articles
alt.flame.marshal.perlman    3    articles
alt.music.perl-jam    11    articles
alt.perl.sockets    45    articles
comp.lang.perl.announce    43    articles
comp.lang.perl.misc    18940    articles
comp.1ang.perl.moderat ed    622    articles
comp.lang.perl.modules    2240    articles
comp.lang.perl.tk    779    articles
cz.comp.lang.perl    63    articles
de.comp.lang.perl.cgi    1989    articles
han.comp.lang.perl    174    articles
it.comp.lang.perl    715    articles
japan.comp.lang.perl    53    articles

Обратите внимание, что сопоставление с образцом не было идеальным, поэтому с ним была сопоставлена группа alt.music.perl-jam, наряду с группами новостей, которые действительно имеют отношение к этому языку. Код сценария приведен в листинге ниже.

0:    #    ! /usr/local/bin/perl"'-w
1:     #    Файл: news_groups.pl
2:    use    strict;
3:    use    Net::NNTP;
4:    my $nntp = Net::NNTP->new() or die "Couldnlt connect: $!n";
5:    print_stats($nntp,$_) while $_ = shift;
6:    $nntp->quit;
7.:    sub print_stats    {
8 :    my $nntp = shift;.    .
9:    my $pattern =    shift;
10 :    my $groups =    $nntp->newsgroups($pattern);
11:    return print "$pattern: No matching newsgroupsn"
12:    unless $groups && keys %$groups;
13:    for my $g (sort keys %$groups) {
14:    my ($articles,$first,$last) =    $nntp->group($g);
15:    print "%-60s    %5d    articlesn",$g, $articles;
16:    }
17: }

Проведем анализ программы.

Строки 1-3. Загрузка модулей. Включена строгая проверка синтаксиса и загружен модуль Net::NNTP.

Строка 4. Создание нового объекта Net::NNTP. Вызывается метод Net::NNTP->new () для подключения к хосту службы сетевых новостей, если хост явно не указан, модуль Net::NNTP выбирает подходящий хост из переменных среды или применяет сервер NNTP, предусмотрен­ный по умолчанию при установке утилит libnet.

Строки. 5, 6. Вывод статистических данных и выход. Для каждого параметра в командной строке вызывается подпрограмма print_stats () для поиска по образцу и вывода сопостав­ленных с ним имен групп новостей. После этого вызывается метод quit() объекта NNTP.

Строки 7-1. Подпрограмма print_stats(). В подпрограмме print_stats() вызывается метод newsgroups() объекта NNTP для поиска групп новостей, имена которых соответствуют образцу. В случае успешного выполнения метод newsgroups() возвращает ссылку на хеш, клю­чами которого являются имена групп новостей, а значениями — краткие описания групп новостей. Если метод newsgroups() возвращает значение undef или пустое значение, выполняется возврат. В ином случае происходит сортировка имен групп по алфавиту и проход по этим име­нам в цикле. Для каждой группы вызывается метод group () объекта NNTP для получения списка с информацией о числе статей в группе и номерах сообщений первой и последней ста­тей. Выводится имя группы новостей и число содержащихся в ней статей.



2014-02-21 01:57:13

это интересно
Инновации всегда являются двигателем прогресса, но мало кто знает об Интернет портале представляющим передовые идеи малого бизнеса. Таковым является сайт www.ideibiznesa.org , на котором представлены реальные и самые прибыльные новые бизнес-идеи реального времени. Здесь можно найти не только идеи, но реально работающие схемы развития бизнеса для любого небольшого населенного пункта.

предыдущая часть ««»» следующая часть


ДОКУМЕНТАЦИЯ VoIP


НОВОСТИ СВЯЗИ


РЕКОМЕНДУЕМ

 
[ стандарты | обзор | оборудование | анализатор | коды | новости | карта | партнерам | Мы ВКонтаке ]
Запрещается копировать материалы сайта без уведомления авторов.
С вопросами и предложениями обращайтесь со страницы контактов
Copyright c 1999-2024 IPTop.Net
 
IP-Телефония, Интернет Телефония, Компьютерная телефония