Thank you, ikegami, for your extremely informative reply. I see your point about not notifying perl I was using UTf-8. When I include the 'use utf8' (without the semicolon) in front of my $test assignment line, the length() function still tells me that the length of $test is 2 chars, but it does print out correctly to the shell as the registered trademark symbol, instead of junk. If I insert the semicolon, it prints junk. Is it possible that my shell is interpreting the output differently than perl? I suppose I should read up on Perl's inner workings. One minor note however, the code I posted was in fact the code that I ran, so I am still confused on that point. I appreciate your help.