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]

Reply via email to