... "Donna Roy-Mayweather" gets converted to "Roy-Mayweather, Donna."
I don't understand. I would have said that "Roy-Mayweather" was the entire and correct surname of this person. What result do you want to get?
Update: Oh, or did you mean that "Donna Roy-Mayweather" should be converted to "Roy-Mayweather, Donna", but the Text::Names module does not do this correctly? (Maybe a code example would help, maybe something along the lines of How to ask better questions using Test::More and sample data?)
Give a man a fish: <%-{-{-{-<