http://qs1969.pair.com?node_id=179155


in reply to Capturing RegExp Matches

The general answer to this sort of problem is to use capturing parentheses in your regex in combination with the /g operator:

# assume $regex has been built with qr// and matches what you want my $regex = qr/foobar/; # assuming $data contains all the data you want to scan from my @things_im_interested_in = ( $data =~ /($regex)/g ); # or, if it isn't and you are doing this from multiple data # strings push @things_im_interested_in, $data_chunk =~/($regex)/g;

The /g modifier returns all the matches in the string, so those match operators return a list of the matching parts of the string.

However, as a read through the Perl FAQ (or even on this site for, say "Email Address") will reveal, using regexes to match email addresses is a dicey issue in the first place.

I mistrust all systematizers and avoid them. The will to a system shows a lack of integrity -- F. Nietzsche