Perl is not OO.
Perl's data types are somewhat like objects in that they are encapsulated. Perl offers and interface to that called tie. But since the behaviour of Perl's data types is tied to Perl's syntax, Perl is unable to allow those tie implementations to be extended in any reasonable way.
To get a feeling for how much this matters, I suggest learning a truly OO language. For me it was Ruby. The difference is incredible. Should you decide that you want something like a hash in Perl, you can tie. Suppose that is backed by data on disk and you want to add locking functions, you simply can't make it look like a hash the rest of the time. In Ruby you can make it look like a hash, and just add whatever methods you desire, without conflicting with the syntax.