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

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

Реклама

Perl для IP-Телефонии (27 – Обработка почты, часть 15)

предыдущая часть ««»» следующая часть
http://agent-007.com.ua/

Модуль PopParser. Еще одним важным компонентом сценария pop_fetch.pl является модуль PopParser, который создает подкласс класса Net::POP3 таким образом, чтобы ин­терпретация сообщений MIME происходила одновременно с их выборкой. Код моду­ля PopParser. pm приведен в листинге ниже.

0:.    package PopParser;
1:    # Файл: PopParser.pm
2:    use    strict;
3:    use    Net::POP3;
4:    use    MIME::Parser;
5:    use    vars '@ISA';
6:    @ISA = qw(Net::POP3);
7:    # Перекрыть метод new() модуля Net::POP3
8:    sub new {
9:    my $pack = shift;
10:    return    unless my $self = $pack->SUPER::new(@_);
11:    my $parser = MIME::Parser->new;
12:    $parser->output_dir($ENV{TMPDIR) ||    '/trap');
13:    $self->parser($parser);
14:    $self;
151    }
16:    # Средство доступа к объекту MIME::Parser
17:    sub parser {
18:    my $self = shift;
19:    ${*$self}{'pp_parser'} = shift if @_;
20:    return ${*$self}{'pp_parser'}
21    }
22:    # Переопределение метода get ()
23:    sub get {
24:    my $self = shift;
25:    my $msgnum = shift;
26:    my $fh = $self->getfh($msgnum)
27:    or    die    "Can't    get    message: ",$self->message,"n";
28:    return $self->parser->parse($fh);
29:    }

Строки 1-6. Загрузка модулей. Включена строгая проверка и загружены модули Net::POP3 и MIME::Parser. Применяется глобальный массив @ISA, который сообщает интерпретатору языка, что PopParser является подклассом класса Net::POP3.

Строки 7-15. Переопределение метода new(). Метод new() модуля Net::РОРЗ переопре­деляется в целях создания и инициализации объекта mime::Parser для последующего ис­пользования. Вначале вызывается метод new() родительского объекта для создания основ­ного объекта и подключения его к удаленному хосту, затем создается и настраивается объект mime::Parser. Полученный синтаксический анализатор сохраняется для последующего ис­пользования путем вызова метода parser(), который представляет собой средство доступа к объекту mime::Parser.

Строки 16-21. Метод parser(). Этот метод представляет собой средство доступа к объекту MIME::Parser, созданному в результате вызова метода new(). Если данный модуль будет вызван с передачей объекта синтаксического анализатора в стеке подпрограммы, то объект будет сохранен как одна из переменных экземпляра. В ином случае текущий объект синтакси­ческого анализатора будет возвращен вызывающей процедуре.



2014-02-14 17:29:08

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


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


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


РЕКОМЕНДУЕМ

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