J. Alejandro Ceballos Z. wrote: > How may I avoid partial interpolation over a pattern sustitution? > > My code looks like: > > # searching for all matches for later use > @matches = $htmlpage =~ m/<pre>(.*?)<\/pre>/gs; > for ($i=0; $i<$#matches; $i++) > { $htmlpage =~ s/<pre>$matches[$i]<\/pre>/<predefined:$i\/>/; } > > > The problem comes when the matches contains regex characters, and > they try to be evaluated (ex. '|+--..' must be interpeted like > '\|\+--\.\.').
You can use the following prior to entering the for loop. $_ = quotemeta($_) for @matches; You could also combine the capturing and substitution something like this: my @matches; $htmlpage =~ s/<pre>(.*?)<\/pre>/push(@matches, $1) && "<predefined:$#matches>"/geis; -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>