in reply to ucfirst(uclast(lc($user))) ?

Here's a slightly sneaky solution that I happen to find quite readable:

substr($thing,-1,1) =~ tr/a-z/A-Z/;

The trick is knowing that substr can be used as an lvalue...