Метод new() - это конструктор класса Mail::Header, при вызове без параметров он создает объект Mail::Header, содержащий пустой набор заголовков. Первый параметр, если он указан, применяется для инициализации объекта. Метод принимает пары двух типов. Может быть задан открытый дескриптор файла, и в этом случае заголовки считываются из указанного файла; может быть также задана ссылка на массив, и в таком случае заголовки считываются из массива. В том или ином случае каждая строка должна представлять собой правильно сформатированный заголовок электронной почты, например “Subject : this is a subject”.
Отдельный параметр @options представляет собой список ключевых параметров, которые управляют различными опциями заголовка. Наиболее часто применяется опция Modify; при ее установке равной истинному значению модуль Mail::Header получает разрешение переформатировать строки заголовка для обеспечения их полной совместимости с RFC 822.
После создания объекта Mail::Header появляется возможность манипулировать содержимым несколькими способами.
read(FILEHANDLE) – этот один способ заполнения объекта заголовка состоит в том, что создается пустой объект вызовом метода new() без параметров, а затем заголовки считываются из дескриптора файла с использованием метода read().
Методы add(), replace() и delete()позволяют изменять содержимое объекта Mall::Header. Каждый из этих методов принимает имя поля, с которым должна быть выполнена операция, и значение поля, а в качестве дополнительного параметра принимает индекс элемента многозначного поля.