Hallo,
ich möchte den ersten Buchstaben einer Zeichnkette durch den entsprechenden Grossbuchstaben ersetzen. ...
RTFM.
PerlFAQ:
perlfaq4 - Data Manipulation > How do I capitalize all the words on one line?
To make the first letter of each word upper case:
$line =~ s/\b(\w)/\U$1/g;
This has the strange effect of turning don't do it'' into Don'T Do It''. Sometimes you might want this, instead (Suggested by brian d. foy):
$string =~ s/ (
(^\w) #at the beginning of the line
| # or
(\s\w) #preceded by whitespace
)
/\U$1/xg;
$string =~ /([\w']+)/\u\L$1/g;
To make the whole line upper case:
$line = uc($line);
To force each word to be lower case, with the first letter upper case:
$line =~ s/(\w+)/\u\L$1/g;
You can (and probably should) enable locale awareness of those characters by placing a use locale pragma in your program. See the perllocale manpage for endless details on locales.
This is sometimes referred to as putting something into ``title case'', but that's not quite accurate. Consider the proper capitalization of the movie Dr. Strangelove or: How I Learned to Stop Worrying and Love the Bomb, for example.
Struppi.