sub foo { my ($rx, $subst_e) = @_; local $_ = get_data_from_some_source(); s/$rx/eval $subst_e/ge; # short form: # s/$rx/$subst_e/gee; } foo(qr/(foo|bar|baz)/, '\U$1');