Walery Studennikov пишет: ($header,$body) = split (/\n\n/,$message,2); Читайте RFC :)
Hi.Сейчас дописываем свой модуль для работы email-сообщениями (парсинг сообщений, сопоставление с шаблонами, поиск нужных сообщений в mbox-ах, выдирание из них нужной информации и т.д. и т.п.). Основные требования: - модуль должен быть ультратёгким, без лишних зависимостей, - ультрабыстрым (т.к. будет перемалывать большие массивы данных). Когда модуль устаканиться, выложим на CPAN. Так вот, одна из загвоздок, с которой столкнулись -- это отделение header от body в rfc822-сообщениях. Т.е. нужно некое преобразование, которое на входе получает целое сообщение ($message), на выходе -- разрезанное: $header, $body. Сейчас используется: @$self{ qw/raw_header body/ } = ($body =~ m/(.+?)(?:\r?\n){2}(.+)/som); До этого использовалась комбинация index / substr. Однако, скорость преобразования при этом недостаточна. Вопрос: как это можно сделать наиболее быстро на Perl, не прибегая к XS. Ваши варианты? ;)
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
