sub foo { my ($massage) = @_; local $_ = get_data_from_some_source(); $massage->(); } foo(sub { s/(foo|bar|baz)/\U$1/g });