Static variables/functions in Perl: Journey from C++ to Perl

I am relatively new to Perl.. in fact not so new now it’s been almost 3 years but frankly I am still learning new things on daily basis so much to learn. Great language and community it’s privilege to be part of ! Prior to Perl I was programming in C/C++ for 3 years and before that I was programming mostly in C and assembly languages. So it’s been wonderful journey till now learning many languages. Well, as C++ was my last language before Perl so I sometime use my C++ OO concepts to understand the same OO concepts in Perl. I don’t know if this is the correct approach or not but for me it helps. Last weekend I was just thinking about static variables and static functions/methods in C++.  Second obvious thought was how we implement them in Perl? or in fact do we really need them? As we don’t have private, public, protected keyword in Perl so how we are going to implement these features and setting the access inside and outside class? How Perl allocates the memory for static variable? Can we get this behavior just by declaring a variable outside of functions in a package or does const module will help?

So many questions, Well I might get some answers from web but I thought that it would be better idea to use this platform and ask directly to experts.  Would be nice if you guys can help me to understand and also direct me to some documentation links which compare the OO features in C++ and Perl.

Thanks for reading !