in reply to Upper-casing characters above Hex FF.

I think what you have there is characters above 0x7f. The difference is critical, as perl will handle characters above 0xff (if utf8 encoded) without further intervention.

To use your locale settings to determine how to deal with uppercasing, etc. these, try use locale;.

Otherwise, if you know they are latin1, you can upgrade to utf8 with utf8::upgrade($aaa); $bbb = uc $aaa; print "$bbb\n"; --which will output utf8-encoded data. If you don't want that, add utf8::downgrade($bbb); before the print (but see the doc before using utf8::downgrade).

If you know they are in some other encoding, specify that with use encoding "whatever"; and then use utf8::*grade as above.

(Also, note that at least one utf8 character (chr(223), "LATIN SMALL LETTER SHARP S") will produce two characters ("SS") when uppercased.)