Front page | perl.beginners |
Postings from December 2002
help with classes...
Thread Next
From:
christopher j bottaro
Date:
December 10, 2002 02:45
Subject:
help with classes...
Message ID:
200212100445.16180.cjb@cs.utexas.edu
hey,
i'm a c/c++ programmer struggling to pick up OO perl. i've been reading the
perltoot and i have question about the following:
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};
}
ok, in the sub new(), i understand that $self is a ref and new() is returning
it. what does bless do (the single arg version). i thought bless takes 2
args: what to bless and the name to bless it with...? what else does bless
do besides give something a type?
in the sub name(), what is the first argument? obviously its a reference to a
person object (or whatever new() returned). but why? i've written subs
before and used shift(), but this is confusing me. say i have $person =
Person->new(); now i do $person->name(); i'm not passing it any arguments
so why is the sub name() receiving an argument which is a reference to a
Person object? does it have something to do with bless()? something to do
with being a part of package?
thanks for the help....=)
christopher
Thread Next
-
help with classes...
by christopher j bottaro