sub replace { my($text, $pattern, $replacement, $global) = @_; my $result = $text; if ($global) { $result =~ s/$pattern/$replacement/eg; } else { $result =~ s/$pattern/$replacement/e; } return $result; } my $y = replace($x, qr/\b(\w)/is, '"\U$1"', 1);