> я смотрю народ вовсю с MIME::Tools работать умеет > может кто подскажет как решить изящно задачку > есть письмо в stdin > кормлю его MIME::Parser'у > далее хочу получить раскодированные заголовки (например From и To) > $parser->decode_headers(1);
$parser оставь как есть. my $entity = $parser->read(\*STDIN); my $head = $entity->head(); $head->decode(); $head->unfold(); my $charset = $head->mime_attr('content-type.charset') || ...; my ($subject, $date, $from, $references, $in_reply_to, $xsender) = map {xcode($charset, substr($head->get($_), 0, -1))} qw(Subject Date From References In-Reply-To X-Sender); sub xcode { my ($charset, $src) = @_; my %charsets = ( 'windows-1251'=>'WIN', 'iso8859-5'=>'ISO', 'koi8-r'=>'KOI8', 'koi8r'=>'KOI8', 'koi8-u'=>'KOI8', 'utf-8'=>'UTF8', 'utf8'=>'UTF8' ); return $src unless ($charset); # Mail(1) return Convert::Cyrillic::cstocs($charsets{lc($charset)}, 'KOI8', $src); } у меня тут антикварный код, поэтому используется антикварный Convert::Cyrillic. Сейчас надо юзать Encode (3perl). В том числе и вместо Text::Iconv; Если хочется иметь возможность работы когда кодировки заголовков отличны от кодировки тела, то есть такой код: http://pavel.ammosov.ru/ruperl/ru-perl-faq-4.html#ss4.6 -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]