my $uniccol = Unicode::Collate->new(); print join(' + ',sort {$a =~ /[öäüßÖÄÜ]/ || $b =~ /[öäüÄÖÜß]/ ? $uniccol->cmp($a,$b) : lc $a cmp lc $b} ('Vertrag','Übel','Ärger','Öl','ßig','ärgerlich'));