R. Joseph Newton wrote:
>
> Thanks. Let me make sure I have this clear, then. Does any call to
> a class method then have the reference to the object, or the object
> itself, as the first parameter.
Almost. Any method called through an object will have that object
(a blessed reference) as its first parameter. You can also make
'class method' calls, in which case the first parameter will simply be
the name of the module (the package name). Assuming for now
there is no inheritance goin on
my $train = Train->new;
or
my $train = new Train;
(the two are interchangeable except for minor syntactic difficulties)
will both call
Train::new('Train');
whereas
my $vehicle = $train->new;
or
my $vehicle = new $train;
will call
Train::new($train);
> In that case, it certainly does make sense to shift it back out
> before handling the rest.of the arguments.
Every time you're feeling lost, the following (from perldoc
perlobj) will make you feel a little more secure; mainly
through its insistence on using 'simply'!
1. An object is simply a reference that happens to know which class it
belongs to.
2. A class is simply a package that happens to provide methods to deal
with object references.
3. A method is simply a subroutine that expects an object reference (or
a package name, for class methods) as the first argument.
HTH,
Rob
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]