В сценарий pop_fetch .pl можно внести еще много полезных усовершенствований. Наиболее важные результаты могло бы иметь расширение перечня программ просмотра для нетекстовых дополнений и обеспечение возможности их свободного выбора. Лучший способ решения этой задачи состоит в предоставлении поддержки системного файла /etc/mailcap и пользовательских файлов .mailcap; эти файлы в системах UNIX связывают типы MIME с внешними программами просмотра. В результате пользователь получит возможность устанавливать и настраивать программы просмотра без редактирования кода. Средства поддержки системы mailcap находятся в модуле Mail::Сар, который входит в состав пакета MaiITools Грэма Барра. Для использования модуля Mail::Сар в сценарии pop_fetch.pl нужно заменить строки 7—11 следующими:
use Mail::Cap; my $mc = Mail::Cap->new;
В результате будет вызван модуль Mail::Сар и создан новый объект Mail::Сар, который позволяет выбирать информацию из файлов конфигурации mailcap.
Замените строку 90, в которой происходит вызов подпрограммы get_viewer() эквивалентным вызовом метода модуля Mail::Сар.
my $viewer =$mc->viewCmd(,$type) ;
Этот метод принимает в качестве параметра тип MIME и возвращает команду, которая должна быть вызвана для просмотра данных этого типа, если такая команда не определена в файле системы.
Последнее изменение состоит в замене строки 97, в которой вызывается подпрограмма display_body() для вызова средства просмотра тела вложения, эквивалентным вызовом метода модуля Mail::Сар.
$mc->view($tуре, $body->path) ;
При выполнении этого вызова происходит поиск соответствующей команды просмотра для указанного типа MIME, подстановка строк и вызов команды с помощью функции system().
Подпрограммы get_viewer() и display_body() больше не нужны, поскольку их функциональные средства заменяются средствами модуля Mail::Сар. Эти подпрограммы можно удалить.
К другим возможным усовершенствованиям этого сценария относятся:
1) способность отвечать на сообщения; 2) способность выводить список старых и новых сообщений и переходить непосредственно к сообщениям, интересующим пользователя; 3) реализация полноэкранного оконного интерфейса с использованием модули Curses, предназначенного для работы в текстовом режиме, или пакета для графического режима, которые могут быть получены из архива CPAN.