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

Kaltashkin Eugene zhecka на gmail.com
Пт Фев 6 03:09:46 PST 2009


Костя Тен пишет:

Mime требует много большего количества ресурсов нежели самописный 
парсер. Mime-tools писался под все случаи жизни.
иногда нужно просто выгрести из сообщения часть данных чем парсить целиком.
> А Mime уже не катит ?
>
>   
>> 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.
>>
>> Ваши варианты? ;)
>> -- 
>> Walery Studennikov
>> http://www.reg.ru/
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>>     
>
>
>   



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