11) Подпрограмма save_body(). Подпрограмма save_body () принимает объект MIME::Body и заданное по умолчанию имя файла. Она предоставляет пользователю возможность изменить Имя файла, открывает файл, и записывает информационное наполнение части на диск.
Самой интересной особенностью этой подпрограммы является способ обработки имени файла вложения, применяемого по умолчанию. Имя файла берется из поля заголовка Content-position:, поэтому рассматривается как данные, не заслуживающие доверия. Некто, желающий причинить вред, может выбрать недопустимое имя пути, при использовании которого (без проверки) можно перезаписать ценный файл конфигурации. По этой причине запрещены полные имена путей, а также имена файлов, которые содержат компонент “..” обозначения относительного имени пути. Запрещены также имена файлов, содержащие такие необычные знаки, как метасимволы командного интерпретатора. После успешного выполнения проверок имя файла извлекается путем сопоставления с образцом; в результате эти данные перестают быть потенциально опасными. Теперь интерпретатор Perl позволит открыть файл для записи. Выполняется открытие файла и запись в него содержимого вложения путем вызова метода print() объекта MIME:: Body.
12) Подпрограмма display_body (). Данная подпрограмма вызывается для запуска внешней программы просмотра, позволяющей отобразить присоединенный файл. Ей передается объект mime::Body и команда запуска внешней программы просмотра для его отображения.
Чтобы это приложение было немного интереснее, в нем разрешено применение программ просмотра двух типов: тех, которые считывают тело сообщения из файла на диске, и тех, которые считывают его со стандартного устройства ввода. Последние отличаются тем, что содержат в команде вызова код формата %s, который будет заменен именем файла перед выполнением команды (это — стандартное соглашение, применяемое в файле mailcap UNIX).