local $/ = undef; my $raw = ; $raw =~ s/[\r\n]//g; $raw =~ s/;\s+//g; my @list = split /;/, $raw; #### foreach (@list) { s/^[^<>]+<([^<>]+)>$/$1/; # or: s/^[^<>]+<([^<>\s]+@[^<>\s]+)>$/$1/; }