packge Mule;use base ("Horse", "donkey"); # 聲明一個超類它是下面東西的縮寫:package Mule;BEGIN {our @ISA = ("Horse", "Donkey");require Horse;require Donkey;}Horse 類 :[root@wx03 test]# cat Horse.pm package Horse;BEGIN {our @ISA = "Critter";require Critter;};sub new {my $invocant = shift;my $class = ref($invocant) || $invocant;my $self = {color => "bay",legs => 4,owner => undef,@_, # 覆蓋以前的屬性};return bless $self, $class;#return $self;};sub sum1 { $self=shift; my $a=shift; my $b=shift; return $a + $b + 7;};our @arr=qw/1 2 3 4 5 6 7/;our %h1=(1,2,3,4,5,6,7,8);1;Critter類:[root@wx03 test]# cat Critter.pm package Critter;sub new { my $self = {}; my $invocant = shift; my $class = ref($invocant) || $invocant;my ($name)=@_; my $self = { "name" =>$name }; bless $self, $class; # Use class name to bless() reference return $self;};sub sum2 { $self=shift; my $a=shift; my $b=shift; return $a + $b;};sub fun1 { $self=shift; my $a=shift; my $b=shift; return $a / $b;}1;[root@wx03 test]# cat t10.pl unshift(@INC,"/root/test"); use Horse;;$ua=Horse->new();#print "It's an object\n" if UNIVERSAL::isa($ua, 'UNIVERSAL');$code=Horse->sum1(4,5);print "\$str is $code\n";$code=Horse->sum2(4,5);print "\$str is $code\n";[root@wx03 test]# perl t10.pl $str is 16$str is 9使用use base 代替:[root@wx03 test]# cat Horse.pm package Horse;use base qw(Critter);sub new {my $invocant = shift;my $class = ref($invocant) || $invocant;my $self = {color => "bay",legs => 4,owner => undef,@_, # 覆蓋以前的屬性};return bless $self, $class;#return $self;};sub sum1 { $self=shift; my $a=shift; my $b=shift; return $a + $b + 7;};our @arr=qw/1 2 3 4 5 6 7/;our %h1=(1,2,3,4,5,6,7,8);1;[root@wx03 test]# cat t10.pl unshift(@INC,"/root/test"); use Horse;;$ua=Horse->new();#print "It's an object\n" if UNIVERSAL::isa($ua, 'UNIVERSAL');$code=Horse->sum1(4,5);print "\$str is $code\n";$code=Horse->sum2(4,5);print "\$str is $code\n";[root@wx03 test]# perl t10.pl $str is 16$str is 9