in reply to Why does $$self++ works?

sub add_handle($$) { ... }

If this function definition is intended to be a class method (as seems to be the case), then be aware that prototype checking is completely disabled by method invocation with the  -> (arrow; see perlop) operator. Using prototypes in such a case will only serve to confuse you and others. See Prototypes and Far More than Everything You've Ever Wanted to Know about Prototypes in Perl -- by Tom Christiansen.


Give a man a fish:  <%-{-{-{-<