7) Трансляция образца для сопоставления. Для повышения эффективности образцы, применяемые для сопоставления, транслируются и создается анонимная подпрограмма. Эта подпрограмма принимает текст строки заголовка и возвращает истинное значение при успешном сопоставлении со всеми образцами, а в ином случае — ложное значение. Подпрограмма match_code () принимает список образцов, применяемых для сопоставления, транслирует их и возвращает соответствующую ссылку на код.
8) Развертывание образцов поиска групп новостей. Список образцов групп новостей передается в подпрограмму expand_newsgroups (). Эта подпрограмма вызывает сервер NNTP, чтобы он создал список групп новостей, соответствующий символам шаблона, и вернул полученный список.
9) Поиск соответствующих статей. Выполняется просмотр в цикле развернутого списка групп новостей и вызов подпрограммы grep_group () для каждой из групп новостей. Параметры подпрограммы grep_group () состоят из имени группы новостей и ссылки на код, предназначенный для отбора статей в этой группе. В подпрограмме grep_group () идентификаторы сообщений статей, соответствующих заданным критериям, накапливаются в хеше %Articles. Такая конструкция применяется в связи с тем, что одна и та же статья, например по теме - компьютер моноблок , может быть отправлена сразу в несколько взаимосвязанных групп новостей; при использовании идентификатора статьи в хеше можно избежать накопления дубликатов.
10) “Отсеивание” уже просмотренных статей. Для отсеивания статей, идентификаторы сообщений которых уже присутствуют в хеше %Seen, привязанном к базе данных, применяется функция grep ( ) языка Perl. Идентификаторы новых статей добавляются к этому хешу, чтобы при следующих сеансах выполнения сценария можно было определить, что они уже получены. Идентификаторы неполученных статей записываются в массив $to_fetch. Если пользователь вызовет сценарий с опцией -all, операция grep () будет исключена с тем, чтобы была выполнена выборка всех статей, включая полученные ранее. Это не повлияет на обновление хеша %seen, привязанного к базе данных.