hmm, i have more questions now. how does one make class methods vs object
methods?
using the example from the tutorial...
package Person;
use strict;
sub new {
my $self = {};
$self->{NAME} = undef;
$self->{AGE} = undef;
$self->{PEERS} = [];
bless($self); # but see below
return $self;
}
sub name {
my $self = shift;
if (@_) { $self->{NAME} = shift }
return $self->{NAME};
}
what if we did Person->name()? would it implicitly pass anything as the 1st
argument? or does that only happen when an object invokes the method? like
this $person->name().
i don't see how Person->name() could pass a ref of it self as the first
argument cuz there >is< no object. thus sub name() could be rewritten as:
sub name() {
my $self = shift;
if (!ref($self)) { return undef; }
if (@_) { $self->{NAME} = shift }
return $self->{NAME};
}
which returns undef if it is invoked as a class method, essentially making
name() an object method only.
am i making sense or am i just waaaaaay off?
thanks,
christopher
P.S. any tips on the section in the perltoot "Class Data"? i'm not making
much sense of it. so class data are just vars declared with "my" in scope of
the class (package)? in the example in perltoot, $Census is like that. but
the constructor for Person adds a ref of $Census into the hash. why? it has
something to do with destruction but i'm not getting it.........
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]