>+ lc Lowercase a string
>+ lcfirst Lowercase first char of a string
>+ uc Uppercase a string
>+ ucfirst Uppercase first char of a string
Not quite; the last one (for ucfirst or \u) should be Titlecase,
not Uppercase--which of course, are not always the same.
Consider the "dz" character at U+01F3:
% perl -e 'printf "U+%04X\n", ord chr 0x1F3'
U+01F3
% perl -e 'printf "U+%04X\n", ord uc chr 0x1F3'
U+01F1
% perl -e 'printf "U+%04X\n", ord ucfirst chr 0x1F3'
U+01F2
If you're (usefully) running something like
% xterm -n unicode -u8 -fn
-misc-fixed-medium-r-normal--20-200-75-75-c-100-iso10646-1
Then under perl v5.8.1, providing that you've used -C6 or setenv
PERL_UNICODE to 6 or some such similarly useful value, then you can look
at actual characters on your screen instead of their numeric codepoints.
% perl -le 'print chr for 0x1f1 .. 0x1f3'
DZ
Dz
dz
If that's too exotic, consider the "�" character at U+00DF (more
common in Germany than in Hungary, unlike "dz"):
% perl -le 'print pack "U", 0xDF'
�
% perl -le 'print uc pack "U", 0xDF'
SS
% perl -le 'print ucfirst pack "U", 0xDF'
Ss
The funny pack is to force the UTF8 flag when 128 < codepoint <= 256.
That way we get correct casing rules loaded for what would otherwise
presumably appear to be in an 8-bit encoding, since for this peculiar
character, the POSIX and/or ctype.h charclass macros are of no use,
but the Unicode casing rules are.
% perl -le 'print 0xDF'
�
% perl -le 'print uc 0xDF'
�
% perl -le 'print ucfirst 0xDF'
�
Alas.
--tom