in reply to MIME::Parser does not retrieve

How about using Mail::Internet instead? Here's how I'm using it, which works well:
use strict; use warnings; use Mail::Internet; # parse incoming headers # from a stream, could be # a file handle too.. my $message = new Mail::Internet ([<>]); my $from = $message->get('From'); my $subject = $message->get('Subject'); my @body = @{$message->body()}; # ..print or manipulate as normal.
In my code, I'm using Mail::Internet , MIME::Lite (thanks ar0n for the tip), and Config::Simple to parse a template out of an email message sent to my script, operate on the variables parsed from that template, and send the sender back a binary file which includes the data requested in the template, as a file attachment to the reply.

These modules let me grab all the headers, body, and manipulate them/parse them for my needs. It works very well, and is incredibly small and fast.