in reply to uc() every other letter

perl -le '@l=("a".."z"); $_=join("",@l); s/../\u$&/g; print'
When the number of leters is even, the ucfirst /\u/ will work on pairs of numbers matched above. if the length of the string was odd, the last character could be handled as a special case.
Seeing some of the other responses leads me to think that the question was not clearly stated what kind of input, was it a mapping on a per character basis, (where tr could help) etc..