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 -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]