12.5.2 访问被覆盖的方法: 当一个类定义一个方法,那么该子过程覆盖任意基类中同名的方法。 [root@wx03 test]# cat Horse.pm package Horse; our @ISA = "Critter"; sub new { my $invocant = shift; my $class = ref($invocant) || $invocant; my $self = { color => "bay", legs => 4, owner => undef, @_, # 覆盖以前的属性 }; return bless $self, $class; }; sub sum { $self=shift; my $a=shift; my $b=shift; return $a + $b + 7; }; 1; [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 sum { $self=shift; my $a=shift; my $b=shift; return $a + $b; }; 1; [root@wx03 test]# cat t6.pl unshift(@INC,"/root/test"); use Horse;; use base qw(Critter); require Critter; use Data::Dumper; $ed = Horse->new; # 四腿湾马 print $ed->sum(4,5); print " "; print $ed->sum(4,5) [root@wx03 test]# perl t6.pl 16 16[root@wx03 test]# 会覆盖基类的相同方法;