in reply to Re: multiple (different) substitutions on same $foo
in thread multiple (different) substitutions on same $foo

For a second, I thought you were suggesting what I was going to suggest... Close:

my %repl= ( frog=>"toad", man=>"boy", woman=>"girl" ); $foo =~ s/(frog|man|woman)/$repl($1)/g;
And you can even build the regex from the keys, if you like:
my $re= join "|", map quotemeta($_), keys %repl;
But the original code is probably both faster and simpler. (:

                - tye

Replies are listed 'Best First'.
Re: Re^2: multiple (different) substitutions on same $foo (at once)
by halley (Prior) on Aug 22, 2003 at 12:56 UTC

    However, the original poster specified one /g and two non-/g replacements. If that is the real intent, then a data-table solution would need to flag the repeatable replacements versus the singular replacements. If they all should be repeatable, then the data solutions offered are very useful.

    Also, a note to the original poster: s/man/boy/ would create a lot of strings like "read the fine boyual" in a general text. You may want to learn what the zero-width assertion \b does inside a regex. s/\bman\b/boy/g; s/\bmen\b/boys/g may help you out.

    --
    [ e d @ h a l l e y . c c ]