I think you are confusing the first occurance of '$$' and the second, in the code above. The first one is a functionprototype, the second is the global var you mention. Prototyping isn't common in perl, so it looks a little funny, but the two '$$'s have nothing to do with one another.