http://www.perlmonks.org?node_id=1217522


in reply to Module to intelligently handle names with two last names and other best practices?

If your assumption is that everyone in your data only has 1 first name, and everything else is a multi-part last name, they stick hyphens in place of all the spaces except the first, then use cleanNames to handle them as it appears to handle hyphenated names fine from your example.

Of course, if you can't assume there's only 1 first name for everyone, you need to make a set of rules on how to decide what's part of a first name, what's part of a last name. Then hyphenate appropriately, and again, use cleanNames as appropriate.