Not "unlearning" per se, but just learning, and running into
problems with previous habits. Lots of things --- and in both
directions. Like you, it took me a little while before putting
symbols in front of variables was a habit. Of couse, now I can
usually count on throwing in a few @'s and $'s when I'm coding in C.
It also took me a while to really utilize the foreach loop rather
than the C-style for(;;) loop --- however, I also learned early *not*
to use foreach (1 .. 1000000), because it built the
whole list in memory. That was optimized to a counting loop (in 5.005).
It was rather easy to learn not to do it because there was a
penalty involved. Coming back to the foreach version
took longer because there is no real penalty for sticking with the C
version. Well, actually there is a minor penalty --- a suprising
number of people will prejudge you to somehow be a less competant Perl
programmer if you use the C-style loop rather than the more
"idiomatic" foreach version (even though it wasn't all that long ago
(prior to mid 1998 or so) when it wasn't always a good idea).
On the whole, picking up Perl with all it's idiosyncracies, funky
symbols, context sensitivity, statement modifiers and such wasn't
noticeably a problem. It's only when you need to go back to another
language that you *really* notice what's missing and have to
remember/relearn how to accomplish even relatively simple tasks :-)