use Email::Address; my $addresses = 'aaa@z.com bbb@z.com ccc@z.com "John Doe" (John Doe) '; my @emails = Email::Address->parse($addresses); for (@emails) { $_->address( $_->user . '@' . "something.com" ) if $_->host eq 'z.com'; } my $new_addresses = join ' ', @emails;