Mail::Field::names() does not work as documented. It returns "From : name1 ... nameN" instead of just a list of the names.
You have to pass separately created descendent objects into parent class constructors.
The Mail::Field->new() constructor does not actually properly parse headers when passed a tag, instead it interleaves the headers and gives you random (at best) results. wtf?!
Just say no. The amount of outside extra hackery with this module makes you want to die.