http://qs321.pair.com?node_id=1050318

packetstormer has asked for the wisdom of the Perl Monks concerning the following question:

Hello Monks

I have being using Perl for a while but only recently had any need to start looking at OOP. I notice a couple of odd things that I hope someone could clear up?

What is the reason for the first argument that is passed to the routine in a class being the class name? Is this useful in certain ways?

Secondly, I noticed that if I export my functions, from the class, and then, in my calling script call it by its name (e.g &function("data") ) then the first argument isn't the class name. However, if I call it directly e.g MyDir::Class->function("data"), from the same script, then the first argument is the class name.

Is there good reasons why this is the case, or am I doing something really silly!?