#!/usr/bin/perl use strict; use warnings; my $text = 'Hier steht ein langer Text , in dem das erste Wort klein gemacht werden soll , so wie hier .'; print "Input:\n$text\n\n"; my @words = split ' ', $text; my %words; my %starting_words = map { my $t = $words[$_]; $words{$t}--; $t => $_ } grep { $words{$words[$_]}++; $words[$_-1] =~ /^[\.!\?]$/ } 0 .. $#words; foreach my $key ( keys %starting_words ) { my $lckey = lcfirst $key; if ( exists $words{$lckey} && ( $words{$lckey} > $words{$key} ) ) { $words[$starting_words{$key}] = $lckey; } # if } # foreach print "Output:\n", join( ' ', @words ), "\n"; ; __END__