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 = { };
$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/