В образцах поиска строки темы используются средства машины сопоставления с образцом интерпретатора Perl, которые могут представлять собой любое регулярное выражение, например, для поиска статей по теме: смартфоны fly на андроид цены http://flystore.ru/catalog/smartfony/ . Однако в целях повышения производительности для обозначения имен групп новостей применяются только встроенные образцы с символами шаблона системы NNTP.
В следующей команде задан поиск в группах новостей comp.long.perl.* статей, которые содержат слово “Socket” или “socket” в строке темы. Статьи, соответствующие этому образцу, будут отправлены по локальному адресу электронной почты. В число опций этого сценария входит -subject, которая служит для указания образца сопоставления темы; -mail, предназначенная для указания получатели (получателей) электронной почты; и -v, которая включает режим вывода подробных сообщений о ходе работы.
% scan__newsgroups.pl -v -mail lstein -subject ’[sS]ocket’ ’comp.lang.perl.* ’ Searching comp.lang.perl.misc for matches Fetching overview for comp.lang.perl.misc found 39 matching articles Searching comp.lang.perl.announce for matches Fetching overview for comp.lang.perl.announce found 0 matching articles Searching comp.lang.perl.tk for matches Fetching overview for comp.lang.perl.tk found 1 matching articles Searching comp.lang.perl.modules for matches Fetching overview for comp.lang.perl,modules found 4 matching articles 44 articles, 40 unseen sending e-mail message to lstein
Полученное сообщение электронной почты содержит краткую вводную часть в которой описан образец поиска строки темы и образец определения группы новостей; за ней следуют статьи, отвечающие заданным критериям. Каждая статья присоединена к сообщению как вложение с типом MIME message/rfc822. В зависимости от программного обеспечения чтения почты, вложения отображаются либо как встроенные компоненты сообщения, либо как присоединенные файлы. Результаты выглядят особенно привлекательно в программе чтения почты Netscape, поскольку каждая статья отображается с использованием различных шрифтов и форматов гиперссылок.
Рассмотрим сценарий типовой программы. 1) Загрузка модулей. Загружаются модули Net::NNTP и MIME::Entity, а также модуль Getopt::Long, предназначенный для обработки параметров. Необходимо отслеживать все сообщения, найденные во время предыдущих сеансов выполнения этого сценария. Проще всего это можно обеспечить путем сохранения идентификаторов сообщений в индексированной базе данных DBM. Однако заранее не известно, какая библиотека DBM установлена на компьютере, поэтому выполняется импорт модуля AnyDBM_Filе, который автоматически выбирает наиболее подходящую библиотеку. Код, содержащийся в блоке begin {}, изменяет порядок поиска в библиотеке DBM, как описано в документации AnyDBM_File. Выполняется также загрузка модуля Fcntl для получения доступа к некоторым константам, необходимым для инициализации файла DBM.
2) Определение констант. Выбирается имя для файла DBM — это файл .newscache в начальном каталоге пользователя, а также создается сообщение с инструкцией по использованию сценария.