in reply to Understanding a OOp code

That's the way to call a method on an object (or a class) in Perl. $hash is a bad name, as it suggests it contains a hash reference , but in fact, it contains an object, otherwise you wouldn't be able to call a method on it. You can find the method's definition in the package that defines its package (run ref $hash to get the package name), or its parent, or its parent's parent, etc.

When run, the method gets the object as its first argument (or, in case of a class method, the class name).

BTW, if the method takes no parameters, the parentheses after the method's name are optional.

($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,