14) Подпрограмма grep_group(). Данная подпрограмма просматривает указанную группу новостей для поиска статей со строками темы, соответствующими набору образцов, например, темы – защиты компьютера в сети outpost . Образцы представлены в форме ссылки на код, который возвращает истинное значение, если строка темы сопоставлена с образцами.
Вызывается подпрограмма get_overview () для получения с сервера индекса краткого обзора для данной группы новостей. Эта подпрограмма возвращает ссылку на хеш, ключами которого являются номера сообщений, а значениями — хеш индексированных полей заголовка. Выполняется просмотр в цикле каждого сообщения, выборка его полей Subject: и Message- ID: и передача поля темы в ссылку на код сопоставления с образцом. Если данная ссылка на код возвращает ложное значение, происходит переход к следующей статье. В ином случав Идентификатор сообщения статьи и данные краткого обзора добавляются к глобальному хешу %Articles.
После проверки всех статей вызывающему оператору возвращается число статей, соответствующих заданным критериям.
15) Подпрограмма get_overview(). Выполнение данной подпрограммы начинается с вызова метода group() объекта NNTP и получения первого и последнего номеров сообщений группы новостей. Затем вызывается метод overview_fmt () объекта для выборки имен полей в индексе краткого обзора. Однако поскольку эта информация не должна изменяться в течение выполнения данного сценария, она кэшируется в глобальной переменной и подпрограмма overview_fmt () вызывается, только если эта глобальная переменная пуста. Имена полей перед присвоением элементам массива @Fields очищаются путем удаления символа ” и всего, что следует за ним.