On Jun 4, 4:34 pm, [EMAIL PROTECTED] (GMan) wrote: > I am trying to teach myself Perl Objects. > > I have a Person object with a name and a list of friends. > > Here is a test program that uses it. > > #! /usr/bin/perl > > use Person; > > $p = new Person; > > $p->setname("Gary"); > $p->addfriend("Bill"); > $p->addfriend("John"); > $p->print(); > > Here is the output from the test program. > > perl testfriends.pl > Name Gary > Friends URLs > HASH(0x86ea69c) > Bill > John > > How do I get rid of the Annoying HASH(0x86ea69c) in my output? > > Here is the code to the object (Person.pm) > > #! /usr/bin/perl > > package Person; > > sub new { > my ($class) = @_; > my ($self) = { }; > bless $self, $class; > $self->{'_name'} = ""; > @friends = { };
change @friends ={} to @friends = (); > $self->{'_friends'} = [EMAIL PROTECTED]; > return $self; > > } > > sub getname { > my ($self) = @_; > return $self->('_name'); > > } > > sub setname { > my ($self,$name) = @_; > $self->{'_name'} = $name if defined($name); > > } > > sub addfriend { > my ($self,$f) = @_; > #dereference the array from the hash > $fr = $self->{'_friends'}; > @friends = @$fr; > push @friends,$f; > $self->{'friends'} = [EMAIL PROTECTED]; > > } > > sub print { > my ($self) = @_; > printf("Name %s\n",$self->{'_name'}); > printf("Friends URLs\n"); > #dereference the array from the hash > $fr = $self->{'_friends'}; > @u = @$fr; > for $u (@u) { > printf("\t%s\n",$u); > } > > } > > 1; -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/