in reply to Strip first name from string

 [metacpan://parse name first last], [cpan://parse name first last] parse name first last, parse name first last

 [metacpan://first last name], [cpan://first last name] first last name, first last name


Locale::ID::GuessGender::FromFirstName - Guess gender of an Indonesian first name
Lingua::Names - test a string to see if it is a first name
Text::GenderFromName - Guess the gender of an American first name.
Data::RandomPerson::Names::ArabicLast - A list of last names
Data::RandomPerson::Names::EnglishLast - A list of last names

stemming
Lingua::Stem - Stemming of words
Text::English - Porter's stemming algorithm
SWISH::Stemmer - Perl extension for stemming words using a modified version of the Stem routine from the SWISH search engine.

so the idea is, split on whitespace (get words), get "stem", lookup parts in dictionary, decide from there