最初の文字が小文字ならそれを大文字に変換する
ucfirst は、文字列 EXPR の最初の文字が小文字なら大文字に変換して、それを返します。
EXPR が指定されなければ $_ が適用されます。
my $str = q(hello);
print ucfirst $str; # Hello
ucfirst はデフォルトでは EXPR の最初の文字が a-z なら A-Z に変換します。
ただし、UTF-8 モードが有効な環境下では、大文字への変換の対象が広がります。
たとえば、アクサンテギュが付いた文字も大文字に変換することができます。
use utf8;
binmode STDOUT, ":utf8";
my $str = q(éphémère);
print ucfirst $str; # Éphémère
このように、utf8 モードが ON の内部文字列であれば、 Unicode 仕様に基づいた小文字変換が行われます。 ⓐという文字ですら Ⓐ に変換されます。