http://qs321.pair.com?node_id=1156122

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

I am trying to take the first name from a person’s full name with two possibly cases. First case if the person’s name is like: SMITH, A DOE
This one could be done like this, unless there is a better way:
$mystring = ($mystring =~ /(\w{3,})$/) ? $1 : ''; Print “DOE”;

But if the person’s name is as this: BULLOCK JOE A
It can be done like this, unless there is a better way:
$mystring = ($mystring =~ / (\w{1,2}\s)(\w+)$/) ? $2 : ''; Print “JOE”;

My goal is to get this line of code to work for both, no luck, any suggestions?
$mystring = ($mystring =~ /(\w{1}\s\w+)|(\w{3,})$/) ? $1 : ''; print "\n $mystring\n";

Test code:
#!/usr/bin/perl use strict; use warnings; #my $mystring = "SMITH, A DOE"; my $mystring = "BULLOCK JOE A"; if($mystring =~ /(\w{3,})$/) { print "\n\n $1\n\n"; }elsif($mystring =~ /(\w{1,2}\s)(\w+)$/) { print "\n\n $2\n\n"; }
Thanks for looking!