Mail::Address extracts and manipulates email addresses from a message header. It cannot be used to extract addresses from some random text. You can use this module to create RFC822 compliant fields.

Although Mail::Address is a very popular subject for books, and is used in many applications, it does a very poor job on the more complex message fields. It does only handle simple address formats (which covers about 95% of what can be found). Problems are with

no support for address groups, even not with the semi-colon as separator between addresses;

limited support for escapes in phrases and comments. There are cases where it can get wrong; and

you have to take care of most escaping when you create an address yourself: Mail::Address does not do that for you.

Often requests are made to the maintainers of this code improve this situation, but this is not a good idea, where it will break zillions of existing applications. If you wish for a fully RFC2822 compliant implementation you may take a look at Mail::Message::Field::Full, part of MailBox.

Return a string representing the address in a suitable form to be placed on a To, Cc, or Bcc line of a message. This method is called on the first ADDRESS to be used; other specified ADDRESSes will be appended, separated with commas.