Проведем анализ программы приведенной в прошлой части.
Строки 1-3. Загрузка модулей. Включена строгая проверка типов и загружен модуль Internet.
Строки 4-7. Определение констант. Одна из проблем при работе с программами, запускаемыми демоном обработчика почты, состоит в том, что в них стандартные переменные среды не всегда установлены. Это значит, что переменной $ENV{HOME} и других стандартных переменных среды может не существовать. Поэтому первое действие заключается в поиске начального каталога и регистрационного имени пользователя и сохранении их в соответствующих константах. В строках 4 и 5 для выборки этой информации применяется функция getpwuid(). Затем для определения местонахождения файлов .vacation и .signature задается константа HOME.
Строки 8,9. Создание объекта Mail::internet. Проверяется наличие файла .vacation, и, если он не существует, выполняется выход. В ином случае создается новый объект Mail::Internet, инициализированный из сообщения, направленного в устройство stdin сценария.
Строки 10-19. Проверка того, должен ли быть отправлен ответ на сообщение. На некоторые сообщения, например отправленные получателю с указанием его в строке CC: или рассылаемые через список рассылки, автоматически отвечать не следует. Еще одним типом сообщения, на которое ни в коем случае нельзя отвечать, являются возвращенные сообщения; ответ на такое сообщение может привести к неприятному бесконечному циклу. В следующем разделе кода предпринимается попытка диагностировать все эти ситуации. Выполняется выборка заголовка путем вызова метода head() объекта Mail::Internet, и производится ряд сопоставлений его полей с образцом.
2013-12-24 14:07:22
это интересно Сохранность жилища или безопасность офисной деятельности – везде нам необходимы помощники в виде различных систем контроля и безопасности. На помощь вам придут видеодомофоны для любых типов сооружений, которые надежно защитят ваш покой от несанкционированных визитов и нежеланных гостей.