I have a module that performs parallel substitutions on a string, as in: $str = subst $str, qr/foo/ => 'bar', qr/bar/ => 'baz', qr/baz/ => 'foo';
Just as if it were typed: $str =~ s/(foo|bar|baz)/$1 eq 'foo' ? 'bar' : $1 eq 'bar' ? 'baz' : $1 eq 'baz' ? 'foo'/g; For any set of regexes you want, handling $1,$2 and all that correctly. I call it Regexp::Subst::Parallel at the moment. Does anyone have any better ideas for the name of such a module? Additionally, can someone think of a better calling convention to use than the one illustrated above? I'm running into problems with other kinds of interpolations: $str = substr, qr/(the contractee)/i => "\$1, $name, ", qr/(the contractor)/i => "\$1, $name2, "; That works, replacing \$1 with "the contractee" in whatever case it was. The problem is, that for a literal $ with other interpolations, it would have to be "\\\$", which is by no means pretty. Any ideas? Thanks, Luke