Concise case changing code Create the shortest program that given an input string it outputs the opposite-cased string. For example if I pass the string "HeLlO" the program should output "hElLo".

Of course, neither aggregate functions can be used, nor framework functions like toupper() or tolower(). Any language is welcome.
Bash shell, 16 characters

tr A-Za-z a-zA-Z


Sample runs:

llama@llama:~$ tr A-Za-z a-zA-Z
ThIs is a TeSt!
tHiS IS A tEsT!
llama@llama:~$ echo 'Programming Puzzles &amp; Code Golf Stack Exchange' | tr A-Za-z a-zA-Z
pROGRAMMING pUZZLES &amp; cODE gOLF sTACK eXCHANGE


It works in a file, too (of course):

llama@llama:~$ echo 'tr A-Za-z a-zA-Z' &gt; swapcase.sh
llama@llama:~$ echo 'This is a test!' | bash swapcase.sh
tHIS IS A TEST!