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/