our @ISA = qw(Person2); # inherits from Person 是package的名字
use Person; //是package的檔名,在同一資料夾下。
===================================
# class Employee.pm
package Employee;
use Person;
use strict;
our @ISA = qw(Person2); # inherits from Person
#constructor
sub new {
my ($class) = @_;
#call the constructor of the parent class, Person.
my $self = $class->SUPER::new();
$self->{_id} = undef;
$self->{_title} = undef;
bless $self, $class;
print "Employee constructor\n";
return $self;
}
#accessor method for id
sub id {
my ( $self, $id ) = @_;
$self->{_id} = $id if defined($id);
return ( $self->{_id} );
}
#accessor method for title
sub title {
my ( $self, $title ) = @_;
$self->{_title} = $title if defined($title);
return ( $self->{_title} );
}
sub print {
my ($self) = @_;
# we will call the print method of the parent class
$self->SUPER::print;
$self->address->print;
}
1;
=========================================
#class Person.pm
package Person2;
use strict;
use Address; #Person class will contain an Address
#constructor
sub new {
my ($class) = @_;
my $self = {
_firstName => undef,
_lastName => undef,
_ssn => undef,
_address => undef
};
bless $self, $class;
print "Person2 constructor\n";
return $self;
}
#accessor method for Person first name
sub firstName {
my ( $self, $firstName ) = @_;
$self->{_firstName} = $firstName if defined($firstName);
return $self->{_firstName};
}
#accessor method for Person last name
sub lastName {
my ( $self, $lastName ) = @_;
$self->{_lastName} = $lastName if defined($lastName);
return $self->{_lastName};
}
#accessor method for Person address
sub address {
my ( $self, $address ) = @_;
$self->{_address} = $address if defined($address);
return $self->{_address};
}
#accessor method for Person social security number
sub ssn {
my ( $self, $ssn ) = @_;
$self->{_ssn} = $ssn if defined($ssn);
return $self->{_ssn};
}
sub print {
my ($self) = @_;
#print Person info
printf( "Name:%s %s\n\n", $self->firstName, $self->lastName );
}
1;
How do I use a Perl module from a relative location?http://stackoverflow.com/questions/787899/how-do-i-use-a-perl-module-from-a-relative-location
use FindBin; use lib "$FindBin::Bin/../lib"; // . /var/www/cgi-bin/project/guestbook/controller print "\@INC is @INC\n"; // @INC is ../model /usr/local/lib/perl5 /usr/local/share/perl5 /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5 /usr/share/perl5
沒有留言:
張貼留言