in reply to Re^2: Newbie parsing problem
in thread Newbie parsing problem

Thanks, I noticed that, too, when I changed it to plug into the test case. Fairly embarrasing considering I do name parsing such as this regularly at work!

Replies are listed 'Best First'.
Re^4: Newbie parsing problem
by rtremaine (Acolyte) on Jan 25, 2007 at 21:55 UTC
    great solutions, I have noticed that:
    my ($last, $first, $middle) = ($name =~ /(\w+)\W*?(\w+)\W*(\w)?/);
    doesn't handle lastnames with hypens in them, any ideas? thanks again!
      \w only matches letters, digits and underscores. since the hyphen is a non-word (\W), that regex interprets it as a separator, so that the second part of the last name is considered the first name.
      the following code supports hyphenated first and last names:
      my ($last, $first, $middle) = ($name =~ /([\w-]+)\W*?([\w-]+)\W*(\w)?/);

      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      *women.pm
        ahhh, I see! thanks again for all your help!