http://qs321.pair.com?node_id=429784


in reply to Massive regexp search and replace

Maybe I'm missing something completely obvious, but have you tried the "o" modifier in your regexes? eg
$INline =~ s/$Source/$Target/egoe

rdfield

Replies are listed 'Best First'.
Re^2: Massive regexp search and replace
by holli (Abbot) on Feb 10, 2005 at 16:43 UTC
    You´re missing that the /o-modifier is just a "promise" to perl, that the variable that contains the regex won´t change within the iteration/loop. In this cause using /o is just wrong, because only the first regex would be applied over and over. Regardless of the change of $Source or $Target.

    qr//-ing the regex is something different. When you qr// a string and assign it to a variable you store the compiled regex in it. This is easily proven by ref()-ing that variable, it will return "Regexp". Of course you can store such a Regexp in whatever data-structure you want, not just plain scalars.

    But that is of little use in this case, because there is no qs//-statment (qr// is just for matching, not for replacing).


    holli, /regexed monk/
Re^2: Massive regexp search and replace
by albert.llorens (Initiate) on Feb 10, 2005 at 16:04 UTC
    No, but I have tried precompiling $Source with qr// in my patterns list before I do the actual replacement. Isn't that more or less equivalent to using /o?