Чтобы узнать, из каких полей была взята эта информация, нужно вызвать метод overview_fmt (). Он возвращает ссылку на массив, содержащий имена полей в том же порядке, в каком они появляются в массивах, возвращаемых методом xover (). За каждым полем следует двоеточие, а иногда и модификатор, зависящий от сервера. Например, при запросе в службу сетевых новостей по теме - программы для андроид , возвращают следующие поля краткого обзора:
Если нужно, чтобы значения массива краткого обзора представляли собой ссылку на хеш, а не ссылку на массив, можно применить для преобразования небольшую подпрограмму, приведенную ниже. Здесь весь секрет состоит в использовании списка имен полей, возвращенного методом overview_fmt (), для создания сечения хеша, которому присваивается значение массива краткого обзора статьи.
sub get_overview { my ($nntp, $ range) = @_; my @fields = map {/(w+):/&& $1} @{$nntp->overview_fmt}; my $over = $nntp->xover($range) || return; foreacn (keys %$over) { my $h = {}; @{$h}{@fields}= @{$over->{$_}}; $over->{$_} = $h; } return $over; }
Шлюз от службы сетевых новостей к службе электронной почты.
В последнем примере представлен определяемый пользователем шлюз от службы сетевых новостей к службе электронной почты. Этот сценарий периодически отыскивает в службе сетевых новостей статьи, интересующие пользователя, включает их в сообщения MIME и отправляет через службу почты Internet. При каждом выполнении сценарий отслеживает, какие сообщения были отправлены ранее, и отправляет только те, которые еще не были отправлены пользователю.
Областью действия этого сценария можно управлять, указывая список групп новостей и, при желании, задавая один или несколько образцов, по которым должен выполняться поиск интересующих пользователя строк темы в статьях, содержащихся в группах новостей. Если образцы поиска по строкам темы не указаны, сценарий выбирает все содержимое перечисленных групп новостей.