This seems like the best dist out there for dealing with MIME messages, and I think I've used various modules from it in the past for various tasks successfully.
However, the MIME::Parser module is problematic. Its documentation is rather poor -- lots of references to 'in core' which I assume mean 'in memory', getting what I wanted (parsing a message for its headers), seemed to require me to digest several different modules' documentation.
But, my biggest complaint is that it just dumps the full body, and attachments, into a zillion files in my CWD w/o being told to. I need to tweak the poorly named 'output_to_core' setting to prevent this. Of course, I didn't notice this until after I had parsed 70000 messages...
This behavior should be more explicitly documented, at least.
Of course, I could also just be Doing It Wrong, and using the wrong tool for what I want (parsing & normalizing the headers from message text I get from another process).