> я смотрю народ вовсю с 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]

Ответить