use strict; my $x = "august ferdinand mobius"; my $y = replace($x, '\b(\w)', '\U$1', 'igs'); print $y; sub replace { my($text, $pattern, $replacement, $modifiers) = @_; my $result = ''; eval '($result = $text)'."=~ s/$pattern/$replacement/$modifiers"; return $result; }