8) Подпрограмма display_entity (). Эта подпрограмма обеспечивает отображение объекта mime::Entity. Она вызывается рекурсивно для обработки объекта верхнего уровня и каждой из его частей (подчастей и т.д.). Выполнение подпрограммы начинается с выборки почтового заголовка сообщения в виде объекта MIME::Head. Если заголовок содержит поле From:, то можно сделать вывод, что это - объект верхнего уровня. Осуществляется вывод заголовка, чтобы пользователь мог видеть имя отправителя и другие поля.
Затем выполняется проверка того, является ли объект многокомпонентным, путем вызова его метода is_multipart(). Если этот метод возвращает истинное значение, то вызывается подпрограмма handle_multipart() для выдачи пользователю запроса о способе обработки каждой из подчастей. В ином случае вызывается подпрограмма display_part () для отображения содержимого компонента.
9) Подпрограмма handle_jnultipart (). Данная подпрограмма открывает в цикле каждую часть многокомпонентного объекта mime::Entity и выполняет ее обработку. Подпрограмма начинается с вызова метода parts() объекта для выборки каждой из его подчастей в виде объекта MIME::Entity. Затем дважды вызывается встроенная функция grep() языка Perl для классификации частей на те, которые можно отображать непосредственно, и те, которые должны рассматриваться как вложения, для отображения которых необходимо использовать внешнее приложение. Поскольку известно, что непосредственно отобразить можно только простой текст, классификация проводится по типу text /plain формата MIME.
Для каждой части типа text/plain вызывается подпрограмма display_part (), которая выводит тело сообщения на экран. Если же в состав объекта входят нетекстовые вложения, пользователю выдается запрос дать разрешение на их отображение, и в случае положительного ответа рекурсивно вызывается подпрограмма display_entity() для каждого вложения. Поскольку подпрограмма display_entity() вызывается рекурсивно, вложения сами могут представлять собой многокомпонентные сообщения, такие как перенаправленные письма.