[Moscow.pm] Быстрый парсинг email-сообщений

Dennis S.Davidoff davydov на nexo.ru
Пт Фев 6 02:52:58 PST 2009


А не проще (быстрее) так?

local $/ = "";
my $header = <STDIN>;
my @body = <STDIN>;

On 06.02.2009 13:50, Kaltashkin Eugene wrote:
> 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
> moscow-pm на pm.org | http://moscow.pm.org

-- 
Sincerely,
Dennis S.Davidoff
System/Network Engineer, Nexo Russia, Moscow
mailto: davydov на nexo.ru
tel. (495) 981-6211

----------- следущая часть -----------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3229 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20090206/83de6124/attachment.bin>


Подробная информация о списке рассылки Moscow-pm