my @string = qq 'img src="'; push @string, qq 'alt="'; # We're going to do the matching * ONE * step at a time, for reasons cited above. # Hence, the array (which could have been created all on one line) # which does NOT assume the order (in the source data) of the search terms. open (my $INFILE, '<', 'htmFOR909469.html') or die "Can't open htmFOR909469.html ", $!; my $text = join('',<$INFILE>); close ($INFILE); for my $string (@string) { while ( $text =~ /$string([^\"]*)/gis ) { # Regex matches and captures anything after $string that is NOT a double quote print "Found: $1 --- Searchterm was: $string \n"; } }